emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[O] [PATCH] ob-sql: Add vertica engine


From: Andreas Gerler
Subject: [O] [PATCH] ob-sql: Add vertica engine
Date: Mon, 27 Mar 2017 22:24:07 +0200

* lisp/ob-sql.el (org-babel-sql-dbstring-vertica): New function.
(org-babel-execute:sql): Add `vertica' engine.

Signed-off-by: Andreas Gerler <address@hidden>
---
 lisp/ob-sql.el | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

diff --git a/lisp/ob-sql.el b/lisp/ob-sql.el
index 15c50ad..ec0427f 100644
--- a/lisp/ob-sql.el
+++ b/lisp/ob-sql.el
@@ -56,6 +56,7 @@
 ;; - sqsh
 ;; - postgresql
 ;; - oracle
+;; - vertica
 ;;
 ;; TODO:
 ;;
@@ -136,6 +137,16 @@ SQL Server on Windows and Linux platform."
                           (when database (format "-D \"%s\"" database))))
              " "))

+(defun org-babel-sql-dbstring-vertica (host port user password database)
+  "Make Vertica command line args for database connection. Pass nil to omit 
that arg."
+  (mapconcat #'identity
+             (delq nil
+                   (list (when host     (format "-h %s" host))
+                         (when port     (format "-p %d" port))
+                         (when user     (format "-U %s" user))
+                         (when password (format "-w %s" (shell-quote-argument 
password) ))
+                         (when database (format "-d %s" database))))
+             " "))

 (defun org-babel-sql-convert-standard-filename (file)
   "Convert the file name to OS standard.
@@ -208,6 +219,12 @@ footer=off -F \"\t\"  %s -f %s -o %s %s"
                                    (org-babel-process-file-name in-file))
                                   (org-babel-sql-convert-standard-filename
                                    (org-babel-process-file-name out-file))))
+                   (`vertica (format "vsql %s -f %s -o %s %s"
+                                   (org-babel-sql-dbstring-vertica
+                                    dbhost dbport dbuser dbpassword database)
+                                   (org-babel-process-file-name in-file)
+                                   (org-babel-process-file-name out-file)
+                                   (or cmdline "")))
                     (`oracle (format
                              "sqlplus -s %s < %s > %s"
                              (org-babel-sql-dbstring-oracle
@@ -235,6 +252,7 @@ SET COLSEP '|'
         ((or `mssql `sqsh) "SET NOCOUNT ON

 ")
+        (`vertica "\\a\n")
         (_ ""))
        (org-babel-expand-body:sql body params)
        ;; "sqsh" requires "go" inserted at EOF.
@@ -245,7 +263,7 @@ SET COLSEP '|'
        (progn (insert-file-contents-literally out-file) (buffer-string)))
       (with-temp-buffer
        (cond
-        ((memq (intern engine) '(dbi mysql postgresql sqsh))
+        ((memq (intern engine) '(dbi mysql postgresql sqsh vertica))
          ;; Add header row delimiter after column-names header in first line
          (cond
           (colnames-p
--
2.10.1 (Apple Git-78)

Attachment: signature.asc
Description: Message signed with OpenPGP


reply via email to

[Prev in Thread] Current Thread [Next in Thread]