0
0
Fork 1
mirror of https://git.savannah.gnu.org/git/emacs/org-mode.git synced 2024-09-30 05:07:48 +00:00

babel: ob-sqlite now handles column names

* lisp/babel/langs/ob-sqlite.el (org-babel-execute:sqlite):
  now handling column names

  (org-babel-sqlite-offset-colnames): now handling column names
This commit is contained in:
Eric Schulte 2010-06-16 13:12:31 -07:00
parent 0f633df264
commit 5769cccd6a

View file

@ -45,19 +45,23 @@
called by `org-babel-execute-src-block'." called by `org-babel-execute-src-block'."
(message "executing Sqlite source code block") (message "executing Sqlite source code block")
(let ((result-params (split-string (or (cdr (assoc :results params)) ""))) (let ((result-params (split-string (or (cdr (assoc :results params)) "")))
(vars (org-babel-ref-variables params))) (vars (org-babel-ref-variables params))
(headers-p (equal "yes" (cdr (assoc :colnames params)))))
(with-temp-buffer (with-temp-buffer
(insert (insert
(shell-command-to-string (shell-command-to-string
(format "%s -csv %s %S" (format "%s %s -csv %s %S"
org-babel-sqlite3-command org-babel-sqlite3-command
(if headers-p "-header" "")
(cdr (assoc :db params)) (cdr (assoc :db params))
(org-babel-sqlite-expand-vars body vars)))) (org-babel-sqlite-expand-vars body vars))))
(if (or (member "scalar" result-params) (if (or (member "scalar" result-params)
(member "code" result-params)) (member "code" result-params))
(buffer-string) (buffer-string)
(org-table-convert-region (point-min) (point-max)) (org-table-convert-region (point-min) (point-max))
(org-babel-sqlite-table-or-scalar (org-table-to-lisp)))))) (org-babel-sqlite-table-or-scalar
(org-babel-sqlite-offset-colnames
(org-table-to-lisp) headers-p))))))
(defun org-babel-sqlite-expand-vars (body vars) (defun org-babel-sqlite-expand-vars (body vars)
"Expand the variables held in VARS in BODY." "Expand the variables held in VARS in BODY."
@ -77,6 +81,12 @@ called by `org-babel-execute-src-block'."
(caar result) (caar result)
result)) result))
(defun org-babel-sqlite-offset-colnames (table headers-p)
"If HEADERS-P is non-nil then offset the first row as column names."
(if headers-p
(cons (car table) (cons 'hline (cdr table)))
table))
(defun org-babel-prep-session:sqlite (session params) (defun org-babel-prep-session:sqlite (session params)
"Prepare SESSION according to the header arguments specified in PARAMS." "Prepare SESSION according to the header arguments specified in PARAMS."
(error "sqlite sessions not yet implemented")) (error "sqlite sessions not yet implemented"))