diff options
| author | Sam Steingold | 2014-09-12 15:57:40 -0400 |
|---|---|---|
| committer | Sam Steingold | 2014-09-12 15:57:40 -0400 |
| commit | 82bb5d8c5bc9c732fb98e27f27f9aa03664055f1 (patch) | |
| tree | b6e94bcfe8d713e04b956bc07a595c118f284ff3 /lisp/progmodes/sql.el | |
| parent | 9f4ee9977653a7666c4c2d82d1f1ffb089bb7487 (diff) | |
| download | emacs-82bb5d8c5bc9c732fb98e27f27f9aa03664055f1.tar.gz emacs-82bb5d8c5bc9c732fb98e27f27f9aa03664055f1.zip | |
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 <roman@burningswell.com>.
Diffstat (limited to 'lisp/progmodes/sql.el')
| -rw-r--r-- | lisp/progmodes/sql.el | 58 |
1 files changed, 58 insertions, 0 deletions
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." | |||
| 505 | :prompt-length 5 | 505 | :prompt-length 5 |
| 506 | :syntax-alist ((?@ . "_")) | 506 | :syntax-alist ((?@ . "_")) |
| 507 | :terminator ("^go" . "go")) | 507 | :terminator ("^go" . "go")) |
| 508 | |||
| 509 | (vertica | ||
| 510 | :name "Vertica" | ||
| 511 | :sqli-program sql-vertica-program | ||
| 512 | :sqli-options sql-vertica-options | ||
| 513 | :sqli-login sql-vertica-login-params | ||
| 514 | :sqli-comint-func 'sql-comint-vertica | ||
| 515 | :list-all ("select table_name from v_catalog.tables" . | ||
| 516 | "select * from v_catalog.tables") | ||
| 517 | :list-table "\\d %s" | ||
| 518 | :prompt-regexp "^\\w*=[#>] " | ||
| 519 | :prompt-length 5 | ||
| 520 | :prompt-cont-regexp "^\\w*[-(][#>] ") | ||
| 508 | ) | 521 | ) |
| 509 | "An alist of product specific configuration settings. | 522 | "An alist of product specific configuration settings. |
| 510 | 523 | ||
| @@ -5056,6 +5069,51 @@ buffer. | |||
| 5056 | 5069 | ||
| 5057 | 5070 | ||
| 5058 | 5071 | ||
| 5072 | (defcustom sql-vertica-program "vsql" | ||
| 5073 | "Command to start the Vertica client." | ||
| 5074 | :version "24.5" | ||
| 5075 | :type 'file | ||
| 5076 | :group 'SQL) | ||
| 5077 | |||
| 5078 | (defcustom sql-vertica-options '("-P" "pager=off") | ||
| 5079 | "List of additional options for `sql-vertica-program'. | ||
| 5080 | The default value disables the internal pager." | ||
| 5081 | :version "24.5" | ||
| 5082 | :type '(repeat string) | ||
| 5083 | :group 'SQL) | ||
| 5084 | |||
| 5085 | (defcustom sql-vertica-login-params '(user password database server) | ||
| 5086 | "List of login parameters needed to connect to Vertica." | ||
| 5087 | :version "24.5" | ||
| 5088 | :type 'sql-login-params | ||
| 5089 | :group 'SQL) | ||
| 5090 | |||
| 5091 | (defun sql-comint-vertica (product options) | ||
| 5092 | "Create comint buffer and connect to Vertica." | ||
| 5093 | (sql-comint product | ||
| 5094 | (nconc | ||
| 5095 | (and (not (string= "" sql-server)) | ||
| 5096 | (list "-h" sql-server)) | ||
| 5097 | (and (not (string= "" sql-database)) | ||
| 5098 | (list "-d" sql-database)) | ||
| 5099 | (and (not (string= "" sql-password)) | ||
| 5100 | (list "-w" sql-password)) | ||
| 5101 | (and (not (string= "" sql-user)) | ||
| 5102 | (list "-U" sql-user)) | ||
| 5103 | options))) | ||
| 5104 | |||
| 5105 | ;;;###autoload | ||
| 5106 | (defun sql-vertica (&optional buffer) | ||
| 5107 | "Run vsql as an inferior process." | ||
| 5108 | (interactive "P") | ||
| 5109 | (sql-product-interactive 'vertica buffer)) | ||
| 5110 | |||
| 5111 | (provide 'vertica) | ||
| 5112 | |||
| 5113 | ;;; vertica.el ends here | ||
| 5114 | |||
| 5115 | |||
| 5116 | |||
| 5059 | (provide 'sql) | 5117 | (provide 'sql) |
| 5060 | 5118 | ||
| 5061 | ;;; sql.el ends here | 5119 | ;;; sql.el ends here |