From 82bb5d8c5bc9c732fb98e27f27f9aa03664055f1 Mon Sep 17 00:00:00 2001 From: Sam Steingold Date: Fri, 12 Sep 2014 15:57:40 -0400 Subject: [PATCH] Add support for Vertica SQL. * 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 . --- etc/NEWS | 2 ++ lisp/ChangeLog | 8 +++++++ lisp/progmodes/sql.el | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 68 insertions(+) diff --git a/etc/NEWS b/etc/NEWS index 75cf583a864..56aa9958bd0 100644 --- 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 diff --git a/lisp/ChangeLog b/lisp/ChangeLog index d19a9eba204..0e8672b9daf 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,11 @@ +2014-09-12 Sam Steingold + + * 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 . + 2014-09-11 Paul Eggert * ses.el (ses-file-format-extend-parameter-list): Rename from diff --git a/lisp/progmodes/sql.el b/lisp/progmodes/sql.el index 4029b2e8d3b..92ab4d557d4 100644 --- a/lisp/progmodes/sql.el +++ b/lisp/progmodes/sql.el @@ -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. +(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 + + + (provide 'sql) ;;; sql.el ends here -- 2.11.4.GIT