]> git.eshelyaron.com Git - emacs.git/commitdiff
Add support for Vertica SQL.
authorSam Steingold <sds@gnu.org>
Fri, 12 Sep 2014 19:57:40 +0000 (15:57 -0400)
committerSam Steingold <sds@gnu.org>
Fri, 12 Sep 2014 19:57:40 +0000 (15:57 -0400)
* lisp/progmodes/sql.el (sql-product-alist): Add vertica.
(sql-vertica-program, sql-vertica-options)
(sql-vertica-login-params, sql-comint-vertica, sql-vertica):
New functions and variables to support Vertica.
Inspired by code by Roman Scherer <roman@burningswell.com>.

etc/NEWS
lisp/ChangeLog
lisp/progmodes/sql.el

index 75cf583a864c22a3995180339929df0e99de0694..56aa9958bd0f994256b1e38986f3286676ed22c1 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -155,6 +155,8 @@ connections using Tramp.
 interactive buffer and advances to the next line, skipping whitespace
 and comments.
 
+*** Add support for Vertica SQL.
+
 ** VC and related modes
 
 *** New option `vc-annotate-background-mode' controls whether
index d19a9eba204902a4677374f32f75e410709e47cd..0e8672b9dafd420966a21bb28ead3d2df799d8fd 100644 (file)
@@ -1,3 +1,11 @@
+2014-09-12  Sam Steingold  <sds@gnu.org>
+
+       * progmodes/sql.el (sql-product-alist): Add vertica.
+       (sql-vertica-program, sql-vertica-options)
+       (sql-vertica-login-params, sql-comint-vertica, sql-vertica):
+       New functions and variables to support Vertica.
+       Inspired by code by Roman Scherer <roman@burningswell.com>.
+
 2014-09-11  Paul Eggert  <eggert@cs.ucla.edu>
 
        * ses.el (ses-file-format-extend-parameter-list): Rename from
index 4029b2e8d3b1caff940dba6d5025b140a87f3b7a..92ab4d557d4390617b15951db6f6475335f1793a 100644 (file)
@@ -505,6 +505,19 @@ file.  Since that is a plaintext file, this could be dangerous."
      :prompt-length 5
      :syntax-alist ((?@ . "_"))
      :terminator ("^go" . "go"))
+
+    (vertica
+     :name "Vertica"
+     :sqli-program sql-vertica-program
+     :sqli-options sql-vertica-options
+     :sqli-login sql-vertica-login-params
+     :sqli-comint-func 'sql-comint-vertica
+     :list-all ("select table_name from v_catalog.tables" .
+                "select * from v_catalog.tables")
+     :list-table "\\d %s"
+     :prompt-regexp "^\\w*=[#>] "
+     :prompt-length 5
+     :prompt-cont-regexp "^\\w*[-(][#>] ")
     )
   "An alist of product specific configuration settings.
 
@@ -5056,6 +5069,51 @@ buffer.
 
 \f
 
+(defcustom sql-vertica-program "vsql"
+  "Command to start the Vertica client."
+  :version "24.5"
+  :type 'file
+  :group 'SQL)
+
+(defcustom sql-vertica-options '("-P" "pager=off")
+  "List of additional options for `sql-vertica-program'.
+The default value disables the internal pager."
+  :version "24.5"
+  :type '(repeat string)
+  :group 'SQL)
+
+(defcustom sql-vertica-login-params '(user password database server)
+  "List of login parameters needed to connect to Vertica."
+  :version "24.5"
+  :type 'sql-login-params
+  :group 'SQL)
+
+(defun sql-comint-vertica (product options)
+  "Create comint buffer and connect to Vertica."
+  (sql-comint product
+              (nconc
+               (and (not (string= "" sql-server))
+                    (list "-h" sql-server))
+               (and (not (string= "" sql-database))
+                    (list "-d" sql-database))
+               (and (not (string= "" sql-password))
+                    (list "-w" sql-password))
+               (and (not (string= "" sql-user))
+                    (list "-U" sql-user))
+               options)))
+
+;;;###autoload
+(defun sql-vertica (&optional buffer)
+  "Run vsql as an inferior process."
+  (interactive "P")
+  (sql-product-interactive 'vertica buffer))
+
+(provide 'vertica)
+
+;;; vertica.el ends here
+
+
+\f
 (provide 'sql)
 
 ;;; sql.el ends here