diff options
| author | Simen Heggestøyl | 2016-11-15 19:08:22 +0100 |
|---|---|---|
| committer | Simen Heggestøyl | 2016-11-15 19:08:22 +0100 |
| commit | 4e2ef64449ce5dc91e2d533c0fbaaf50b0e92f3b (patch) | |
| tree | 89e0591c9a02a03abfd2acdbcf5166bc490dbde4 /lisp | |
| parent | 8663fad0a70e60e130ae4cd0529ead66fbad2250 (diff) | |
| download | emacs-4e2ef64449ce5dc91e2d533c0fbaaf50b0e92f3b.tar.gz emacs-4e2ef64449ce5dc91e2d533c0fbaaf50b0e92f3b.zip | |
Complete the name of PostgreSQL databases
* lisp/progmodes/sql.el (sql-postgres-login-params): Complete database
name.
(sql-postgres-list-databases): New function returning a list of
available PostgreSQL databases.
* test/lisp/progmodes/sql-tests.el: New file with tests for sql.el.
Diffstat (limited to 'lisp')
| -rw-r--r-- | lisp/progmodes/sql.el | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/lisp/progmodes/sql.el b/lisp/progmodes/sql.el index a11d4560aed..4d0bed77d56 100644 --- a/lisp/progmodes/sql.el +++ b/lisp/progmodes/sql.el | |||
| @@ -1072,14 +1072,26 @@ add your name with a \"-U\" prefix (such as \"-Umark\") to the list." | |||
| 1072 | :version "20.8" | 1072 | :version "20.8" |
| 1073 | :group 'SQL) | 1073 | :group 'SQL) |
| 1074 | 1074 | ||
| 1075 | (defcustom sql-postgres-login-params `((user :default ,(user-login-name)) | 1075 | (defcustom sql-postgres-login-params |
| 1076 | (database :default ,(user-login-name)) | 1076 | `((user :default ,(user-login-name)) |
| 1077 | server) | 1077 | (database :default ,(user-login-name) |
| 1078 | :completion ,(completion-table-dynamic | ||
| 1079 | (lambda (_) (sql-postgres-list-databases)))) | ||
| 1080 | server) | ||
| 1078 | "List of login parameters needed to connect to Postgres." | 1081 | "List of login parameters needed to connect to Postgres." |
| 1079 | :type 'sql-login-params | 1082 | :type 'sql-login-params |
| 1080 | :version "24.1" | 1083 | :version "24.1" |
| 1081 | :group 'SQL) | 1084 | :group 'SQL) |
| 1082 | 1085 | ||
| 1086 | (defun sql-postgres-list-databases () | ||
| 1087 | "Return a list of available PostgreSQL databases." | ||
| 1088 | (when (executable-find sql-postgres-program) | ||
| 1089 | (let ((res '())) | ||
| 1090 | (dolist (row (process-lines sql-postgres-program "-ltX")) | ||
| 1091 | (when (string-match "^ \\([[:alnum:]-_]+\\) +|.*" row) | ||
| 1092 | (push (match-string 1 row) res))) | ||
| 1093 | (nreverse res)))) | ||
| 1094 | |||
| 1083 | ;; Customization for Interbase | 1095 | ;; Customization for Interbase |
| 1084 | 1096 | ||
| 1085 | (defcustom sql-interbase-program "isql" | 1097 | (defcustom sql-interbase-program "isql" |