]> code.delx.au - gnu-emacs/blobdiff - lisp/org/ob-sqlite.el
Fix more copyright year for Org files.
[gnu-emacs] / lisp / org / ob-sqlite.el
index 7d6930abd4be31cdea970db5a50e0161367cb14d..d3a336a8af0cf071cef7426075e198f444e3c52e 100644 (file)
@@ -1,11 +1,10 @@
 ;;; ob-sqlite.el --- org-babel functions for sqlite database interaction
 
 ;;; ob-sqlite.el --- org-babel functions for sqlite database interaction
 
-;; Copyright (C) 2010  Free Software Foundation
+;; Copyright (C) 2010-2012  Free Software Foundation
 
 ;; Author: Eric Schulte
 ;; Keywords: literate programming, reproducible research
 ;; Homepage: http://orgmode.org
 
 ;; Author: Eric Schulte
 ;; Keywords: literate programming, reproducible research
 ;; Homepage: http://orgmode.org
-;; Version: 7.01
 
 ;; This file is part of GNU Emacs.
 
 
 ;; This file is part of GNU Emacs.
 
@@ -28,6 +27,7 @@
 
 ;;; Code:
 (require 'ob)
 
 ;;; Code:
 (require 'ob)
+(require 'ob-eval)
 (require 'ob-ref)
 
 (declare-function org-fill-template "org" (template alist))
 (require 'ob-ref)
 
 (declare-function org-fill-template "org" (template alist))
   '(db header echo bail csv column html line list separator nullvalue)
   "Sqlite specific header args.")
 
   '(db header echo bail csv column html line list separator nullvalue)
   "Sqlite specific header args.")
 
-(defun org-babel-expand-body:sqlite (body params &optional processed-params)
+(defun org-babel-expand-body:sqlite (body params)
+  "Expand BODY according to the values of PARAMS."
   (org-babel-sqlite-expand-vars
   (org-babel-sqlite-expand-vars
-   body (or (nth 1 processed-params) (org-babel-ref-variables params))))
+   body (mapcar #'cdr (org-babel-get-header params :var))))
 
 (defvar org-babel-sqlite3-command "sqlite3")
 
 
 (defvar org-babel-sqlite3-command "sqlite3")
 
@@ -51,7 +52,6 @@
   "Execute a block of Sqlite code with Babel.
 This function is called by `org-babel-execute-src-block'."
   (let ((result-params (split-string (or (cdr (assoc :results params)) "")))
   "Execute a block of Sqlite code with Babel.
 This function is called by `org-babel-execute-src-block'."
   (let ((result-params (split-string (or (cdr (assoc :results params)) "")))
-       (vars (org-babel-ref-variables params))
        (db (cdr (assoc :db params)))
        (separator (cdr (assoc :separator params)))
        (nullvalue (cdr (assoc :nullvalue params)))
        (db (cdr (assoc :db params)))
        (separator (cdr (assoc :separator params)))
        (nullvalue (cdr (assoc :nullvalue params)))
@@ -64,16 +64,10 @@ This function is called by `org-babel-execute-src-block'."
     (unless db (error "ob-sqlite: can't evaluate without a database."))
     (with-temp-buffer
       (insert
     (unless db (error "ob-sqlite: can't evaluate without a database."))
     (with-temp-buffer
       (insert
-       (shell-command-to-string
+       (org-babel-eval
        (org-fill-template
        (org-fill-template
-        "%cmd -init %body %header %separator %nullvalue %others %csv %db "
+        "%cmd %header %separator %nullvalue %others %csv %db "
         (list
         (list
-         (cons "body" ((lambda (sql-file)
-                         (with-temp-file sql-file
-                           (insert (org-babel-expand-body:sqlite
-                                    body nil (list nil vars))))
-                         sql-file)
-                       (make-temp-file "ob-sqlite-sql")))
          (cons "cmd" org-babel-sqlite3-command)
          (cons "header" (if headers-p "-header" "-noheader"))
          (cons "separator"
          (cons "cmd" org-babel-sqlite3-command)
          (cons "header" (if headers-p "-header" "-noheader"))
          (cons "separator"
@@ -90,8 +84,11 @@ This function is called by `org-babel-execute-src-block'."
                              (member :html others) separator)
                          ""
                        "-csv"))
                              (member :html others) separator)
                          ""
                        "-csv"))
-         (cons "db " db)))))
+         (cons "db " db)))
+       ;; body of the code block
+       (org-babel-expand-body:sqlite body params)))
       (if (or (member "scalar" result-params)
       (if (or (member "scalar" result-params)
+             (member "verbatim" result-params)
              (member "html" result-params)
              (member "code" result-params)
              (equal (point-min) (point-max)))
              (member "html" result-params)
              (member "code" result-params)
              (equal (point-min) (point-max)))
@@ -117,8 +114,8 @@ This function is called by `org-babel-execute-src-block'."
                                                        el
                                                      (format "%S" el)))))))
                      data-file)
                                                        el
                                                      (format "%S" el)))))))
                      data-file)
-                   (make-temp-file "ob-sqlite-data"))
-                (format "%S" val)))
+                   (org-babel-temp-file "sqlite-data-"))
+                (if (stringp val) val (format "%S" val))))
             (cdr pair))
            body)))
    vars)
             (cdr pair))
            body)))
    vars)
@@ -147,6 +144,6 @@ Prepare SESSION according to the header arguments specified in PARAMS."
 
 (provide 'ob-sqlite)
 
 
 (provide 'ob-sqlite)
 
-;; arch-tag: 5c03d7f2-0f72-48b8-bbd1-35aafea248ac
+
 
 ;;; ob-sqlite.el ends here
 
 ;;; ob-sqlite.el ends here