aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/progmodes/sql.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/progmodes/sql.el')
-rw-r--r--lisp/progmodes/sql.el18
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"