# HG changeset patch # User Michael Mauger # Date 1279478672 14400 # Node ID 597339bd6bef7768492d551770e90ec8ff9e58fb # Parent 301190722b845124308157d24bd68f3d6d9668dc SQL Mode V2.2 - Added sql-connect and sql-connection-alist diff -r 301190722b84 -r 597339bd6bef etc/NEWS --- a/etc/NEWS Sun Jul 18 15:59:40 2010 +0200 +++ b/etc/NEWS Sun Jul 18 14:44:32 2010 -0400 @@ -42,7 +42,7 @@ This is only useful if your crt*.o files are in a non-standard location. --- -** Emacs can be compiled against Gtk+ 3.0 if you pass --with-x-toolkit=gtk3 +** Emacs can be compiled against Gtk+ 3.0 if you pass --with-x-toolkit=gtk3 to configure. Note that other libraries used by Emacs, RSVG and GConf, also depend on Gtk+. You can disable them with --without-rsvg and --without-gconf. @@ -256,9 +256,9 @@ ** SQL Mode enhancements. -*** Several variables have been marked as safe local variables. -The variables `sql-product', `sql-user', `sql-server', and -`sql-database' can now be safely used as local variables. +*** Several variables have been marked as safe local variables. The +variables `sql-product', `sql-user', `sql-server', `sql-database' and +`sql-port' can now be safely used as local variables. *** Added ability to login with a port on MySQL. The custom variable `sql-port' can be specified for connection to @@ -269,15 +269,42 @@ which is a list of the parameters to be prompted for before a connection is established. +*** Added `sql-connection-alist' to record login parameter values. +An alist for recording different username, database and server +values. If there are multiple databases that you connect to the +parameters needed can be stored in this alist. + +For example, the following might be set in the user's init.el: + + (setq sql-connection-alist + '((dev (sql-product 'sqlite) + (sql-database "/home/mmaug/dev.db")) + (prd (sql-product 'oracle) + (sql-user "mmaug") + (sql-database "iprd2a")))) + +This defines two connections named "dev" and "prd". + +*** Added `sql-connect' to use predefined connections. +Sets the login parameters based on the values in the +`sql-connection-alist' and start a SQL interactive session. Any +values specified in the connection will not be prompted for. + +In the example above, if the user were to invoke M-x sql-connect, they +would be prompted for the connection. The user can respond with +either "dev" or "prd". The "dev" connection would connect to the +SQLite database without prompting; the "prd" connection would prompt +for the users password and then connect to the Oracle database. + *** Added option `sql-send-terminator'. When set makes sure that each command sent with `sql-send-*' commands are properly terminated and submitted to the SQL processor. *** Added option `sql-oracle-scan-on'. When set commands sent to Oracle's SQL*Plus are scanned for strings -starting with an ampersand and the user is asked for replacement -text. In general, the SQL*Plus option SCAN should be set OFF under -SQL interactive mode. +starting with an ampersand and the user is asked for replacement text. +In general, the SQL*Plus option SCAN should always be set OFF under +SQL interactive mode and this option used in its place. *** SQL interactive mode will replace tabs with spaces. This prevents the comand interpretter for MySQL and Postgres from diff -r 301190722b84 -r 597339bd6bef lisp/ChangeLog --- a/lisp/ChangeLog Sun Jul 18 15:59:40 2010 +0200 +++ b/lisp/ChangeLog Sun Jul 18 14:44:32 2010 -0400 @@ -1,3 +1,34 @@ +2010-07-18 Michael R. Mauger + + * progmodes/sql.el: Version 2.2. + (sql-product, sql-user, sql-database, sql-server, sql-port): Use + defcustom :safe keyword rather than putting safe-local-variable + property. + (sql-password): Use defcustom :risky keyword rather than putting + risky-local-variable property. + (sql-oracle-login-params, sql-sqlite-login-params) + (sql-solid-login-params, sql-sybase-login-params) + (sql-informix-login-params, sql-ingres-login-params) + (sql-ms-login-params, sql-postgres-login-params) + (sql-interbase-login-params, sql-db2-login-params) + (sql-linter-login-params): Add `port' option + (sql-get-product-feature): Added NO-INDIRECT parameter. + (sql-comint-oracle, sql-comint-sybase) + (sql-comint-informix, sql-comint-sqlite, sql-comint-mysql) + (sql-comint-solid, sql-comint-ingres, sql-comint-ms) + (sql-comint-postgres, sql-comint-interbase, sql-comint-db2) + (sql-comint-linter): Renamed sql-connect-* functions to + sql-comint-*. + (sql-product-alist, sql-mode-menu): Renamed as above and + :sqli-connect-func to :sqli-comint-func. + (sql-connection): New variable + (sql-interactive-mode): Set it. + (sql-connection-alist): New variable. + (sql-connect): New function. + (sql--alt-buffer-part, sql--alt-if-not-empty) + (sql-make-alternate-buffer-name): Improved alternative buffer + name. + 2010-07-17 Thierry Volpiatto * image-mode.el (image-bookmark-make-record): Do not set context diff -r 301190722b84 -r 597339bd6bef lisp/progmodes/sql.el --- a/lisp/progmodes/sql.el Sun Jul 18 15:59:40 2010 +0200 +++ b/lisp/progmodes/sql.el Sun Jul 18 14:44:32 2010 -0400 @@ -5,7 +5,7 @@ ;; Author: Alex Schroeder ;; Maintainer: Michael Mauger -;; Version: 2.1 +;; Version: 2.2 ;; Keywords: comm languages processes ;; URL: http://savannah.gnu.org/cgi-bin/viewcvs/emacs/emacs/lisp/progmodes/sql.el ;; URL: http://www.emacswiki.org/cgi-bin/wiki.pl?SqlMode @@ -156,7 +156,8 @@ ;; (const user) ;; (const password) ;; (const server) -;; (const database))) +;; (const database) +;; (const port))) ;; :group 'SQL) ;; ;; (sql-set-product-feature 'xyz @@ -170,7 +171,7 @@ ;; (sql-set-product-feature 'xyz ;; :sqli-options 'my-sql-xyz-options)) -;; (defun my-sql-connect-xyz (product options) +;; (defun my-sql-comint-xyz (product options) ;; "Connect ti XyzDB in a comint buffer." ;; ;; ;; Do something with `sql-user', `sql-password', @@ -184,10 +185,10 @@ ;; (setq params (append (list "-P" sql-password) params))) ;; (if (not (string= "" sql-user)) ;; (setq params (append (list "-U" sql-user) params))) -;; (sql-connect product params))) +;; (sql-comint product params))) ;; ;; (sql-set-product-feature 'xyz -;; :sqli-connect-func 'my-sql-connect-xyz) +;; :sqli-connect-func 'my-sql-comint-xyz) ;; 6) Define a convienence function to invoke the SQL interpreter. @@ -235,6 +236,7 @@ (eval-when-compile (require 'regexp-opt)) (require 'custom) +(require 'assoc) (eval-when-compile ;; needed in Emacs 19, 20 (setq max-specpdl-size 2000)) @@ -255,8 +257,8 @@ (defcustom sql-user "" "Default username." :type 'string - :group 'SQL) -(put 'sql-user 'safe-local-variable 'stringp) + :group 'SQL + :safe 'stringp) (defcustom sql-password "" "Default password. @@ -264,32 +266,36 @@ Storing your password in a textfile such as ~/.emacs could be dangerous. Customizing your password will store it in your ~/.emacs file." :type 'string - :group 'SQL) -(put 'sql-password 'risky-local-variable t) + :group 'SQL + :risky t) (defcustom sql-database "" "Default database." :type 'string - :group 'SQL) -(put 'sql-database 'safe-local-variable 'stringp) + :group 'SQL + :safe 'stringp) (defcustom sql-server "" "Default server or host." :type 'string - :group 'SQL) -(put 'sql-server 'safe-local-variable 'stringp) + :group 'SQL + :safe 'stringp) (defcustom sql-port nil "Default server or host." + :version "24.1" :type 'number - :group 'SQL) -(put 'sql-port 'safe-local-variable 'numberp) + :group 'SQL + :safe 'numberp) ;; SQL Product support (defvar sql-interactive-product nil "Product under `sql-interactive-mode'.") +(defvar sql-connection nil + "Connection name if interactive session started by `sql-connect'.") + (defvar sql-product-alist '((ansi :name "ANSI" @@ -301,7 +307,7 @@ :sqli-program sql-db2-program :sqli-options sql-db2-options :sqli-login sql-db2-login-params - :sqli-connect-func sql-connect-db2 + :sqli-comint-func sql-comint-db2 :prompt-regexp "^db2 => " :prompt-length 7 :input-filter sql-escape-newlines-filter) @@ -312,7 +318,7 @@ :sqli-program sql-informix-program :sqli-options sql-informix-options :sqli-login sql-informix-login-params - :sqli-connect-func sql-connect-informix + :sqli-comint-func sql-comint-informix :prompt-regexp "^> " :prompt-length 2 :syntax-alist ((?{ . "<") (?} . ">"))) @@ -323,7 +329,7 @@ :sqli-program sql-ingres-program :sqli-options sql-ingres-options :sqli-login sql-ingres-login-params - :sqli-connect-func sql-connect-ingres + :sqli-comint-func sql-comint-ingres :prompt-regexp "^\* " :prompt-length 2) @@ -333,7 +339,7 @@ :sqli-program sql-interbase-program :sqli-options sql-interbase-options :sqli-login sql-interbase-login-params - :sqli-connect-func sql-connect-interbase + :sqli-comint-func sql-comint-interbase :prompt-regexp "^SQL> " :prompt-length 5) @@ -343,7 +349,7 @@ :sqli-program sql-linter-program :sqli-options sql-linter-options :sqli-login sql-linter-login-params - :sqli-connect-func sql-connect-linter + :sqli-comint-func sql-comint-linter :prompt-regexp "^SQL>" :prompt-length 4) @@ -353,7 +359,7 @@ :sqli-program sql-ms-program :sqli-options sql-ms-options :sqli-login sql-ms-login-params - :sqli-connect-func sql-connect-ms + :sqli-comint-func sql-comint-ms :prompt-regexp "^[0-9]*>" :prompt-length 5 :syntax-alist ((?@ . "w")) @@ -366,7 +372,7 @@ :sqli-program sql-mysql-program :sqli-options sql-mysql-options :sqli-login sql-mysql-login-params - :sqli-connect-func sql-connect-mysql + :sqli-comint-func sql-comint-mysql :prompt-regexp "^mysql> " :prompt-length 6 :input-filter sql-remove-tabs-filter) @@ -377,7 +383,7 @@ :sqli-program sql-oracle-program :sqli-options sql-oracle-options :sqli-login sql-oracle-login-params - :sqli-connect-func sql-connect-oracle + :sqli-comint-func sql-comint-oracle :prompt-regexp "^SQL> " :prompt-length 5 :syntax-alist ((?$ . "w") (?# . "w")) @@ -391,7 +397,7 @@ :sqli-program sql-postgres-program :sqli-options sql-postgres-options :sqli-login sql-postgres-login-params - :sqli-connect-func sql-connect-postgres + :sqli-comint-func sql-comint-postgres :prompt-regexp "^.*[#>] *" :prompt-length 5 :input-filter sql-remove-tabs-filter @@ -403,7 +409,7 @@ :sqli-program sql-solid-program :sqli-options sql-solid-options :sqli-login sql-solid-login-params - :sqli-connect-func sql-connect-solid + :sqli-comint-func sql-comint-solid :prompt-regexp "^" :prompt-length 0) @@ -414,7 +420,7 @@ :sqli-program sql-sqlite-program :sqli-options sql-sqlite-options :sqli-login sql-sqlite-login-params - :sqli-connect-func sql-connect-sqlite + :sqli-comint-func sql-comint-sqlite :prompt-regexp "^sqlite> " :prompt-length 8) @@ -424,7 +430,7 @@ :sqli-program sql-sybase-program :sqli-options sql-sybase-options :sqli-login sql-sybase-login-params - :sqli-connect-func sql-connect-sybase + :sqli-comint-func sql-comint-sybase :prompt-regexp "^SQL> " :prompt-length 5 :syntax-alist ((?@ . "w")) @@ -463,7 +469,7 @@ database and server) needed to connect to the database. - :sqli-connect-func name of a function which accepts no + :sqli-comint-func name of a function which accepts no parameters that will use the values of `sql-user', `sql-password', `sql-database' and `sql-server' to open a @@ -508,6 +514,51 @@ '(:font-lock :sqli-program :sqli-options :sqli-login)) ;;;###autoload +(defcustom sql-connection-alist nil + "An alist of connection parameters for interacting with a SQL + product. + +Each element of the alist is as follows: + + \(CONNECTION \(SQL-VARIABLE VALUE) ...) + +Where CONNECTION is a symbol identifying the connection, SQL-VARIABLE +is the symbol name of a SQL mode variable, and VALUE is the value to +be assigned to the variable. + +The most common SQL-VARIABLE settings associated with a connection +are: + + `sql-product' + `sql-user' + `sql-password' + `sql-port' + `sql-server' + `sql-database' + +If a SQL-VARIABLE is part of the connection, it will not be +prompted for during login." + + :type `(alist :key-type (symbol :tag "Connection") + :value-type + (set + (group (const :tag "Product" sql-product) + (choice + ,@(mapcar (lambda (prod-info) + `(const :tag + ,(or (plist-get (cdr prod-info) :name) + (capitalize (symbol-name (car prod-info)))) + (quote ,(car prod-info)))) + sql-product-alist))) + (group (const :tag "Username" sql-user) string) + (group (const :tag "Password" sql-password) string) + (group (const :tag "Server" sql-server) string) + (group (const :tag "Database" sql-database) string) + (group (const :tag "Port" sql-port) integer))) + :version "24.1" + :group 'SQL) + +;;;###autoload (defcustom sql-product 'ansi "Select the SQL database product used so that buffers can be highlighted properly when you open them." @@ -518,11 +569,8 @@ (capitalize (symbol-name (car prod-info)))) ,(car prod-info))) sql-product-alist)) - :group 'SQL) -(put 'sql-product 'safe-local-variable 'symbolp) - -(defvar sql-interactive-product nil - "Product under `sql-interactive-mode'.") + :group 'SQL + :safe 'symbolp) ;; misc customization of sql.el behaviour @@ -681,7 +729,8 @@ (const user) (const password) (const server) - (const database))) + (const database) + (const port))) :version "24.1" :group 'SQL) @@ -721,7 +770,8 @@ (const user) (const password) (const server) - (const database))) + (const database) + (const port))) :version "24.1" :group 'SQL) @@ -768,7 +818,8 @@ (const user) (const password) (const server) - (const database))) + (const database) + (const port))) :version "24.1" :group 'SQL) @@ -794,7 +845,8 @@ (const user) (const password) (const server) - (const database))) + (const database) + (const port))) :version "24.1" :group 'SQL) @@ -813,7 +865,8 @@ (const user) (const password) (const server) - (const database))) + (const database) + (const port))) :version "24.1" :group 'SQL) @@ -832,7 +885,8 @@ (const user) (const password) (const server) - (const database))) + (const database) + (const port))) :version "24.1" :group 'SQL) @@ -858,7 +912,8 @@ (const user) (const password) (const server) - (const database))) + (const database) + (const port))) :version "24.1" :group 'SQL) @@ -889,7 +944,8 @@ (const user) (const password) (const server) - (const database))) + (const database) + (const port))) :version "24.1" :group 'SQL) @@ -914,7 +970,8 @@ (const user) (const password) (const server) - (const database))) + (const database) + (const port))) :version "24.1" :group 'SQL) @@ -939,7 +996,8 @@ (const user) (const password) (const server) - (const database))) + (const database) + (const port))) :version "24.1" :group 'SQL) @@ -964,7 +1022,8 @@ (const user) (const password) (const server) - (const database))) + (const database) + (const port))) :version "24.1" :group 'SQL) @@ -1057,7 +1116,7 @@ ["Send String" sql-send-string (and (buffer-live-p sql-buffer) (get-buffer-process sql-buffer))] ["--" nil nil] - ["Start SQLi session" sql-product-interactive (sql-get-product-feature sql-product :sqli-connect-func)] + ["Start SQLi session" sql-product-interactive (sql-get-product-feature sql-product :sqli-comint-func)] ["Show SQLi buffer" sql-show-sqli-buffer t] ["Set SQLi buffer" sql-set-sqli-buffer t] ["Pop to SQLi buffer after send" @@ -2016,13 +2075,17 @@ (setcdr p (plist-put (cdr p) feature newvalue))) (message "`%s' is not a known product; use `sql-add-product' to add it first." product)))) -(defun sql-get-product-feature (product feature &optional fallback) +(defun sql-get-product-feature (product feature &optional fallback not-indirect) "Lookup FEATURE associated with a SQL PRODUCT. If the FEATURE is nil for PRODUCT, and FALLBACK is specified, then the FEATURE associated with the FALLBACK product is returned. +If the FEATURE is in the list `sql-indirect-features', and the +NOT-INDIRECT parameter is not set, then the value of the symbol +stored in the connect alist is returned. + See `sql-product-alist' for a list of products and supported features." (let* ((p (assoc product sql-product-alist)) (v (plist-get (cdr p) feature))) @@ -2036,6 +2099,7 @@ (if (and (member feature sql-indirect-features) + (not not-indirect) (symbolp v)) (symbol-value v) v)) @@ -2329,6 +2393,7 @@ (setq sql-database (read-from-minibuffer "Database: " sql-database nil nil 'sql-database-history)))) + (setq what (cdr what)))) (defun sql-find-sqli-buffer () @@ -2415,21 +2480,62 @@ (message "Buffer %s has no process." (buffer-name sql-buffer)) (message "Current SQLi buffer is %s." (buffer-name sql-buffer))))) +(defun sql--alt-buffer-part (delim part) + (unless (string= "" part) + (list delim part))) + +(defun sql--alt-if-not-empty (s) + (if (string= "" s) nil s)) + (defun sql-make-alternate-buffer-name () "Return a string that can be used to rename a SQLi buffer. This is used to set `sql-alternate-buffer-name' within -`sql-interactive-mode'." - (concat (if (string= "" sql-user) - (if (string= "" (user-login-name)) - () - (concat (user-login-name) "/")) - (concat sql-user "/")) - (if (string= "" sql-database) - (if (string= "" sql-server) - (system-name) - sql-server) - sql-database))) +`sql-interactive-mode'. + +If the session was started with `sql-connect' then the alternate +name would be the name of the connection. + +Otherwise, it uses the parameters identified by the :sqlilogin +parameter. + +If all else fails, the alternate name would be the user and +server/database name." + + (or + ;; If started by sql-connect, use that + (sql--alt-if-not-empty + (when sql-connection (symbol-name sql-connection))) + + ;; based on :sqli-login setting + (sql--alt-if-not-empty + (apply 'concat + (cdr + (apply 'append nil + (mapcar + (lambda (v) + (cond + ((eq v 'user) (sql--alt-buffer-part "/" sql-user)) + ((eq v 'server) (sql--alt-buffer-part "@" sql-server)) + ((eq v 'database) (sql--alt-buffer-part "@" sql-database)) + ((eq v 'port) (sql--alt-buffer-part ":" sql-port)) + + ((eq v 'password) nil) + (t nil))) + (sql-get-product-feature sql-product :sqli-login)))))) + + ;; Default: username/server format + (sql--alt-if-not-empty + (concat (if (string= "" sql-user) + (if (string= "" (user-login-name)) + () + (concat (user-login-name) "/")) + (concat sql-user "/")) + (if (string= "" sql-database) + (if (string= "" sql-server) + (system-name) + sql-server) + sql-database))))) (defun sql-rename-buffer () "Rename a SQLi buffer." @@ -2788,6 +2894,8 @@ (setq abbrev-all-caps 1) ;; Exiting the process will call sql-stop. (set-process-sentinel (get-buffer-process sql-buffer) 'sql-stop) + ;; Save the connection name + (make-local-variable 'sql-connection) ;; Create a usefull name for renaming this buffer later. (make-local-variable 'sql-alternate-buffer-name) (setq sql-alternate-buffer-name (sql-make-alternate-buffer-name)) @@ -2854,7 +2962,7 @@ ((symbolp product) product) ; Product specified (t sql-product))) ; Default to sql-product - (when (sql-get-product-feature product :sqli-connect-func) + (when (sql-get-product-feature product :sqli-comint-func) (if (and sql-buffer (buffer-live-p sql-buffer) (comint-check-proc sql-buffer)) @@ -2882,7 +2990,7 @@ ;; Connect to database. (message "Login...") - (funcall (sql-get-product-feature product :sqli-connect-func) + (funcall (sql-get-product-feature product :sqli-comint-func) product (sql-get-product-feature product :sqli-options)) @@ -2901,16 +3009,82 @@ (message "Login...done") (pop-to-buffer sql-buffer))))) -(defun sql-connect (product params) - "Set up a comint buffer to connect to the SQL processor. +(defun sql-comint (product params) + "Set up a comint buffer to run the SQL processor. PRODUCT is the SQL product. PARAMS is a list of strings which are passed as command line arguments." (let ((program (sql-get-product-feature product :sqli-program))) (set-buffer - (if params - (apply 'make-comint "SQL" program nil params) - (make-comint "SQL" program nil))))) + (apply 'make-comint "SQL" program nil params)))) + +;;;###autoload +(defun sql-connect (connection) + "Connect to an interactive session using CONNECTION settings. + +See `sql-connection-alist' to see how to define connections and +their settings. + +The user will not be prompted for any login parameters if a value +is specified in the connection settings." + + ;; Prompt for the connection from those defined in the alist + (interactive + (if sql-connection-alist + (list + (intern + (completing-read "Connection: " + (mapcar (lambda (c) (symbol-name (car c))) + sql-connection-alist) + nil t))) + nil)) + + ;; Are there connections defined + (if sql-connection-alist + ;; Was one selected + (when connection + ;; Get connection settings + (let ((connect-set (aget sql-connection-alist connection))) + ;; Settings are defined + (if connect-set + ;; Set the desired parameters + (eval `(let* + (,@connect-set + ;; :sqli-login params variable + (param-var (sql-get-product-feature sql-product + :sqli-login nil t)) + ;; :sqli-login params value + (login-params (sql-get-product-feature sql-product + :sqli-login)) + ;; which params are in the connection + (set-params (mapcar + (lambda (v) + (cond + ((eq (car v) 'sql-user) 'user) + ((eq (car v) 'sql-password) 'password) + ((eq (car v) 'sql-server) 'server) + ((eq (car v) 'sql-database) 'database) + ((eq (car v) 'sql-port) 'port) + (t (car v)))) + connect-set)) + ;; the remaining params (w/o the connection params) + (rem-params (apply 'append nil + (mapcar + (lambda (l) + (unless (member l set-params) + (list l))) + login-params))) + ;; Remember the connection + (sql-connection connection)) + + ;; Set the remaining parameters and start the + ;; interactive session + (eval `(let ((,param-var ',rem-params)) + (sql-product-interactive sql-product))))) + (message "SQL Connection \"%s\" does not exist" connection) + nil))) + (message "No SQL Connections defined") + nil)) ;;;###autoload (defun sql-oracle () @@ -2939,7 +3113,7 @@ (interactive) (sql-product-interactive 'oracle)) -(defun sql-connect-oracle (product options) +(defun sql-comint-oracle (product options) "Create comint buffer and connect to Oracle." ;; Produce user/password@database construct. Password without user ;; is meaningless; database without user/password is meaningless, @@ -2955,7 +3129,7 @@ (if parameter (setq parameter (nconc (list parameter) options)) (setq parameter options)) - (sql-connect product parameter))) + (sql-comint product parameter))) @@ -2986,7 +3160,7 @@ (interactive) (sql-product-interactive 'sybase)) -(defun sql-connect-sybase (product options) +(defun sql-comint-sybase (product options) "Create comint buffer and connect to Sybase." ;; Put all parameters to the program (if defined) in a list and call ;; make-comint. @@ -2999,7 +3173,7 @@ (setq params (append (list "-P" sql-password) params))) (if (not (string= "" sql-user)) (setq params (append (list "-U" sql-user) params))) - (sql-connect product params))) + (sql-comint product params))) @@ -3028,7 +3202,7 @@ (interactive) (sql-product-interactive 'informix)) -(defun sql-connect-informix (product options) +(defun sql-comint-informix (product options) "Create comint buffer and connect to Informix." ;; username and password are ignored. (let ((db (if (string= "" sql-database) @@ -3036,7 +3210,7 @@ (if (string= "" sql-server) sql-database (concat sql-database "@" sql-server))))) - (sql-connect product (append `(,db "-") options)))) + (sql-comint product (append `(,db "-") options)))) @@ -3069,7 +3243,7 @@ (interactive) (sql-product-interactive 'sqlite)) -(defun sql-connect-sqlite (product options) +(defun sql-comint-sqlite (product options) "Create comint buffer and connect to SQLite." ;; Put all parameters to the program (if defined) in a list and call ;; make-comint. @@ -3077,7 +3251,7 @@ (if (not (string= "" sql-database)) (setq params (append (list sql-database) params))) (setq params (append options params)) - (sql-connect product params))) + (sql-comint product params))) @@ -3110,7 +3284,7 @@ (interactive) (sql-product-interactive 'mysql)) -(defun sql-connect-mysql (product options) +(defun sql-comint-mysql (product options) "Create comint buffer and connect to MySQL." ;; Put all parameters to the program (if defined) in a list and call ;; make-comint. @@ -3126,7 +3300,7 @@ (if (not (string= "" sql-user)) (setq params (append (list (concat "--user=" sql-user)) params))) (setq params (append options params)) - (sql-connect product params))) + (sql-comint product params))) @@ -3156,7 +3330,7 @@ (interactive) (sql-product-interactive 'solid)) -(defun sql-connect-solid (product options) +(defun sql-comint-solid (product options) "Create comint buffer and connect to Solid." ;; Put all parameters to the program (if defined) in a list and call ;; make-comint. @@ -3167,7 +3341,7 @@ (setq params (append (list sql-user sql-password) params))) (if (not (string= "" sql-server)) (setq params (append (list sql-server) params))) - (sql-connect product params))) + (sql-comint product params))) @@ -3196,10 +3370,10 @@ (interactive) (sql-product-interactive 'ingres)) -(defun sql-connect-ingres (product options) +(defun sql-comint-ingres (product options) "Create comint buffer and connect to Ingres." ;; username and password are ignored. - (sql-connect product + (sql-comint product (append (if (string= "" sql-database) nil (list sql-database)) @@ -3234,7 +3408,7 @@ (interactive) (sql-product-interactive 'ms)) -(defun sql-connect-ms (product options) +(defun sql-comint-ms (product options) "Create comint buffer and connect to Microsoft SQL Server." ;; Put all parameters to the program (if defined) in a list and call ;; make-comint. @@ -3254,7 +3428,7 @@ ;; If -P is passed to ISQL as the last argument without a ;; password, it's considered null. (setq params (append params (list "-P"))))) - (sql-connect product params))) + (sql-comint product params))) @@ -3290,7 +3464,7 @@ (interactive) (sql-product-interactive 'postgres)) -(defun sql-connect-postgres (product options) +(defun sql-comint-postgres (product options) "Create comint buffer and connect to Postgres." ;; username and password are ignored. Mark Stosberg suggest to add ;; the database at the end. Jason Beegan suggest using --pset and @@ -3304,7 +3478,7 @@ (setq params (append (list "-h" sql-server) params))) (if (not (string= "" sql-user)) (setq params (append (list "-U" sql-user) params))) - (sql-connect product params))) + (sql-comint product params))) @@ -3334,7 +3508,7 @@ (interactive) (sql-product-interactive 'interbase)) -(defun sql-connect-interbase (product options) +(defun sql-comint-interbase (product options) "Create comint buffer and connect to Interbase." ;; Put all parameters to the program (if defined) in a list and call ;; make-comint. @@ -3345,7 +3519,7 @@ (setq params (append (list "-p" sql-password) params))) (if (not (string= "" sql-database)) (setq params (cons sql-database params))) ; add to the front! - (sql-connect product params))) + (sql-comint product params))) @@ -3379,11 +3553,11 @@ (interactive) (sql-product-interactive 'db2)) -(defun sql-connect-db2 (product options) +(defun sql-comint-db2 (product options) "Create comint buffer and connect to DB2." ;; Put all parameters to the program (if defined) in a list and call ;; make-comint. - (sql-connect product options) + (sql-comint product options) ) ;; ;; Properly escape newlines when DB2 is interactive. ;; (setq comint-input-sender 'sql-escape-newlines-and-send)) @@ -3415,7 +3589,7 @@ (interactive) (sql-product-interactive 'linter)) -(defun sql-connect-linter (product options) +(defun sql-comint-linter (product options) "Create comint buffer and connect to Linter." ;; Put all parameters to the program (if defined) in a list and call ;; make-comint. @@ -3430,7 +3604,7 @@ (if (string= "" sql-database) (setenv "LINTER_MBX" nil) (setenv "LINTER_MBX" sql-database)) - (sql-connect product params) + (sql-comint product params) (setenv "LINTER_MBX" old-mbx)))