diff options
author | Simen Heggestøyl <simenheg@gmail.com> | 2016-11-15 19:08:22 +0100 |
---|---|---|
committer | Simen Heggestøyl <simenheg@gmail.com> | 2016-11-15 19:08:22 +0100 |
commit | 4e2ef64449ce5dc91e2d533c0fbaaf50b0e92f3b (patch) | |
tree | 89e0591c9a02a03abfd2acdbcf5166bc490dbde4 /lisp/progmodes/sql.el | |
parent | 8663fad0a70e60e130ae4cd0529ead66fbad2250 (diff) | |
download | emacs-4e2ef64449ce5dc91e2d533c0fbaaf50b0e92f3b.tar.gz emacs-4e2ef64449ce5dc91e2d533c0fbaaf50b0e92f3b.tar.bz2 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/progmodes/sql.el')
-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." :version "20.8" :group 'SQL) -(defcustom sql-postgres-login-params `((user :default ,(user-login-name)) - (database :default ,(user-login-name)) - server) +(defcustom sql-postgres-login-params + `((user :default ,(user-login-name)) + (database :default ,(user-login-name) + :completion ,(completion-table-dynamic + (lambda (_) (sql-postgres-list-databases)))) + server) "List of login parameters needed to connect to Postgres." :type 'sql-login-params :version "24.1" :group 'SQL) +(defun sql-postgres-list-databases () + "Return a list of available PostgreSQL databases." + (when (executable-find sql-postgres-program) + (let ((res '())) + (dolist (row (process-lines sql-postgres-program "-ltX")) + (when (string-match "^ \\([[:alnum:]-_]+\\) +|.*" row) + (push (match-string 1 row) res))) + (nreverse res)))) + ;; Customization for Interbase (defcustom sql-interbase-program "isql" |