diff options
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." | |||
| 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" |