Version 1.8.0 of sql-mode.
Simplify selection of SQL products to define highlighting and
interactive mode. Includes detailed instructions on adding
support for new products.
* sql.el (sql-product): New variable. Identifies SQL product for
use in highlighting and interactive mode.
(sql-interactive-product): New variable. SQL product for
sql-interactive-mode.
(sql-product-support): New variable. Specifies product-specific
parameters to drive highlighting and interactive mode.
(sql-imenu-generic-expression): Add more object types.
(sql-sqlite-options): Correct comment.
(sql-ms-program): Use "osql" rather than "isql".
(sql-prompt-regexp, sql-prompt-length): Update comment.
(sql-mode-menu): Add "Start SQLi session" entry. Replace
Highlighting submenu with Product menu. Fix Send Region entry.
(sql-mode-abbrev-table): Add abbreviations. Support of
SYSTEM-FLAG on define-abbrev. Support was removed with last
check-in; it now handles older Emacsen without the SYSTEM-FLAG.
(sql-mode-font-lock-object-name): Add font-lock pattern for object
names.
(sql-mode-ansi-font-lock-keywords): Set as default value.
(sql-mode-oracle-font-lock-keywords): Set as default value.
Support Oracle 9i keywords.
(sql-mode-postgres-font-lock-keywords): Set as default value.
(sql-mode-linter-font-lock-keywords): Set as default value.
(sql-mode-ms-font-lock-keywords): New variable. Support Microsoft
SQLServer 2000.
(sql-mode-sybase-font-lock-keywords)
(sql-mode-interbase-font-lock-keywords)
(sql-mode-sqlite-font-lock-keywords)
(sql-mode-strong-font-lock-keywords)
(sql-mode-mysql-font-lock-keywords)
(sql-mode-db2-font-lock-keywords): New variables. Default to ANSI
keywords.
(sql-mode-font-lock-defaults): Update comment.
(sql-product-feature): New function. Returns feature associated
with a product from `sql-product-support' alist.
(sql-product-font-lock): New function. Set font-lock support
based on `sql-product'.
(sql-add-product-keywords): New function. Add font-lock rules to
product-specific keyword variables.
(sql-set-product): New function. Set `sql-product' and apply
appropriate font-lock highlighting.
(sql-highlight-product): New function. Set font-lock support
based on a product. Also set mode name to include product name.
(sql-highlight-ansi-keywords, sql-highlight-oracle-keywords)
(sql-highlight-postgres-keywords, sql-highlight-linter-keywords):
Use `sql-set-product'.
(sql-highlight-ms-keywords)
(sql-highlight-sybase-keywords)
(sql-highlight-interbase-keywords)
(sql-highlight-strong-keywords)
(sql-highlight-mysql-keywords)
(sql-highlight-sqlite-keywords)
(sql-highlight-db2-keywords): New functions. Use
`sql-set-product'.
(sql-get-login): Prompt in the same order as the tokens.
(sql-mode): Uses `sql-product-highlight' and
`sql-product-font-lock'.
(sql-product-interactive): New function. Common portions of
product-specific interactive mode wrappers.
(sql-interactive-mode): Rewritten to use product features.
(sql-oracle, sql-sybase, sql-informix, sql-sqlite, sql-mysql)
(sql-solid, sql-ingres, sql-ms, sql-postgres, sql-interbase)
(sql-db2, sql-linter): Use `sql-product-interactive'.
(sql-connect-oracle, sql-connect-sybase, sql-connect-informix)
(sql-connect-sqlite, sql-connect-mysql, sql-connect-solid)
(sql-connect-ingres, sql-connect-postgres)
(sql-connect-interbase, sql-connect-db2, sql-connect-linter): New
functions. Format command line parameters and invoke comint on
the appropriate interpreter. Code was in the corresponding
`sql-xyz' function before.
(sql-connect-ms): New function. Support -E argument to use
operating system credentials for authentication.
Simplify selection of SQL products to define highlighting and
interactive mode. Includes detailed instructions on adding support
for new products.
(sql-product): New variable. Identifies SQL product for use in highlighting and
interactive mode.
(sql-interactive-product): New variable. SQL product for sql-interactive-mode.
(sql-product-support): New variable. Specifies product-specific parameters to
drive highlighting and interactive mode.
(sql-imenu-generic-expression): Add more object types.
(sql-sqlite-options): Correct comment.
(sql-ms-program): Use "osql" rather than "isql".
(sql-prompt-regexp, sql-prompt-length): Update comment.
(sql-mode-menu): Add "Start SQLi session" entry. Replace Highlighting submenu
with Product menu. Fix Send Region entry.
(sql-mode-abbrev-table): Add abbreviations. Support of SYSTEM-FLAG on
define-abbrev. Support was removed with last check-in; it now handles older
Emacsen without the SYSTEM-FLAG.
(sql-mode-font-lock-object-name): Add font-lock pattern for object names.
(sql-mode-ansi-font-lock-keywords): Set as default value.
(sql-mode-oracle-font-lock-keywords): Set as default value. Support Oracle 9i
keywords.
(sql-mode-postgres-font-lock-keywords): Set as default value.
(sql-mode-linter-font-lock-keywords): Set as default value.
(sql-mode-ms-font-lock-keywords): New variable. Support Microsoft SQLServer
2000.
(sql-mode-sybase-font-lock-keywords)
(sql-mode-interbase-font-lock-keywords)
(sql-mode-sqlite-font-lock-keywords)
(sql-mode-strong-font-lock-keywords)
(sql-mode-mysql-font-lock-keywords)
(sql-mode-db2-font-lock-keywords): New variables. Default to ANSI keywords.
(sql-mode-font-lock-defaults): Update comment.
(sql-product-feature): New function. Returns feature associated with a product
from `sql-product-support' alist.
(sql-product-font-lock): New function. Set font-lock support based on
`sql-product'.
(sql-add-product-keywords): New function. Add font-lock rules to
product-specific keyword variables.
(sql-set-product): New function. Set `sql-product' and apply appropriate
font-lock highlighting.
(sql-highlight-product): New function. Set font-lock support based on a
product. Also set mode name to include product name.
(sql-highlight-ansi-keywords, sql-highlight-oracle-keywords)
(sql-highlight-postgres-keywords, sql-highlight-linter-keywords):
Use `sql-set-product'.
(sql-highlight-ms-keywords)
(sql-highlight-sybase-keywords)
(sql-highlight-interbase-keywords)
(sql-highlight-strong-keywords)
(sql-highlight-mysql-keywords)
(sql-highlight-sqlite-keywords)
(sql-highlight-db2-keywords): New functions. Use `sql-set-product'.
(sql-get-login): Prompt in the same order as the tokens.
(sql-mode): Uses `sql-product-highlight' and `sql-product-font-lock'.
(sql-product-interactive): New function. Common portions of product-specific
interactive mode wrappers.
(sql-interactive-mode): Rewritten to use product features.
(sql-oracle, sql-sybase, sql-informix, sql-sqlite, sql-mysql)
(sql-solid, sql-ingres, sql-ms, sql-postgres, sql-interbase)
(sql-db2, sql-linter): Use `sql-product-interactive'.
(sql-connect-oracle, sql-connect-sybase, sql-connect-informix)
(sql-connect-sqlite, sql-connect-mysql, sql-connect-solid)
(sql-connect-ingres, sql-connect-postgres)
(sql-connect-interbase, sql-connect-db2, sql-connect-linter): New functions.
Format command line parameters and invoke comint on the appropriate interpreter.
Code was in the corresponding `sql-xyz' function before.
(sql-connect-ms): New function. Support -E argument to use operating system
credentials for authentication.
(sql-linter-program): New variable.
(sql-linter-options): New variable.
(sql-mode-menu): Added Linter keywords.
(sql-mode-linter-font-lock-keywords): New variable.
(sql-highlight-linter-keywords): New function.
(sql-linter): New function.
(sql-ms-options): New variable.
(sql-ms): Use it.
(sql-db2): Doc change.
(sql-help): Doc change by Christian Egli <christian.egli@stest.ch>.
(sql-mysql): Doc change by Christian Egli <christian.egli@stest.ch>.
(sql-db2): Set comint-input-sender to
sql-escape-newlines-and-send.
(sql-db2-program): New option.
(sql-db2-options): New option.
(sql-db2): New function.
(sql-mode-menu): Added highlighting entries.
(sql-highlight-oracle-keywords): New function.
(sql-highlight-postgres-keywords): New function.
(sql-highlight-ansi-keywords): New function.
(sql-help): Doc change.
(sql-sybase): Use it. Add sql-database to the list of parameters
provided for login. The options -w 2048 -n are not used any more.
(sql-postgres-options): Changed default from "--pset" to "-P".
(sql-mysql-options): Doc change.
(sql-stop): Doc change.
(sql-postgres-options): New variable.
(sql-mode-menu): Work around missing variable mark-active
in XEmacs.
(sql-mode): Added call to easy-menu-add for XEmacs compatibility.
(sql-interactive-mode): Added call to easy-menu-add for XEmacs
compatibility.
(sql-copy-column): Use comint-line-beginning-position.
(comint-line-beginning-position): Define a replacement for
comint-line-beginning-position if it is not fboundp.
(sql-mode-map): TAB is no longer defined in sql-mode-map;
it didn't have any effect anyway.
(sql-postgres): Jason Beegan's patch uses the parameters
--pset and pager=off instead of sending \\o|cat at the beginning
of the session.
(sql-ingres, sql-solid, sql-mysql, sql-informix, sql-sybase)
(sql-oracle): Ditto.
(sql-help): Doc change.
(sql-mode-oracle-font-lock-keywords): Added PL/SQL keywords, data
types and exceptions.
(sql-placeholder-history): New variable.
(sql-query-placeholders-and-send): New function that will query
the user and replace placeholders with user input.
(sql-oracle): If running on NT, set comint-input-sender to
sql-query-placeholders-and-send.
(sql-stop): If in the SQLi buffer, insert stop notification, else
present it as a message.
(sql-input-ring-separator): Doc change.
(sql-input-ring-file-name): Doc change.
(sql-interactive-mode): Use `sql-input-ring-separator' and
`sql-input-ring-file-name' to set the comint-mode equivalents
without making them local variables.
(sql-stop): Don't bind `sql-input-ring-separator' and
`sql-input-ring-file-name' dynamically to their comint-mode
equivalents.
`define-key'; instead of checking `(emacs-version)' check for
`set-keymap-parent' and `set-keymap-name' directly. Add entries
for `;' and `o' which might be electric.
(sql-electric-stuff): New user option.
(sql-magic-go): New function which uses `sql-electric-stuff'.
(sql-magic-semicolon): New function which uses
`sql-electric-stuff'.
(sql-accumulate-and-indent): Insert newline if `comint-accumulate'
is not fboundp.
(sql-oracle-options): New variable.
(sql-oracle): Use it.
(sql-imenu-generic-expression): Doc change.
(sql-find-sqli-buffer): Make sure the default-value of sql-buffer
is used.
(sql-informix): Added command line parameter "-" to force
sql-informix-program to use stdout.
(sql-set-sqli-buffer-generally): New function.
(sql-set-sqli-buffer): Better checking of new-buffer.
(sql-copy-column): Add comma after INTO clause, too.
(sql-imenu-generic-expression): New, used to set
imenu-generic-expression.
(sql-mode): Use ?_ and ?. instead of 95 and 46 when
setting font-lock-defaults' SYNTAX-ALIST. Set
imenu-generic-expression, imenu-case-fold-search, and
imenu-syntax-alist.
(sql-interactive-mode): Use ?_ and ?. instead of 95
and 46 when setting font-lock-defaults' SYNTAX-ALIST.
imenu-generic-expression.
(sql-mode): Use ?_ and ?. instead of 95 and 46 when setting
font-lock-defaults' SYNTAX-ALIST. Set imenu-generic-expression,
imenu-case-fold-search, and imenu-syntax-alist.
(sql-interactive-mode): Use ?_ and ?. instead of 95 and 46 when
setting font-lock-defaults' SYNTAX-ALIST.
alex@gnu.org. Mention the mailin listg sql.el@gnu.org.
(sql-input-ring-separator): Doc fix.
(sql-mode-syntax-table): double-dash starts comments is defined as
". 56" instead of ". 12b" for XEmacs.
(sql-stop, sql-interactive-mode): Doc fixes.
(sql-postgres): Queries for database and server, not just one.
(sql-set-sqli-buffer): sql-set-sqli-hook must be quoted.
changed. This is needed for master.el to work.
(sql-set-sqli-buffer): Use the new hook.
(sql-make-alternate-buffer-name): Function that sets
sql-alternate-buffer-name.
(sql-alternate-buffer-name): Possible name of SQLi buffers.
(sql-interactive-mode): Set sql-alternate-buffer-name.
(sql-rename-buffer): New command.
(sql-interactive-mode-menu): Menu for SQLi buffers.
(sql-interactive-mode): Doc fix. sql-input-ring-separator
and sql-input-ring-file-name are used to temporarily set
comint-input-ring-file-name and comint-input-ring-separator when
reading and writing input history files.
(sql-stop): Use sql-input-ring-separator and
sql-input-ring-file-name.
(sql-input-ring-file-name): New variable with customization.
(sql-input-ring-separator): New variable with customization.
(sql-set-sqli-buffer): Renamed from sql-change-sqli-buffer.
Callers changed.
(sql-show-sqli-buffer): The message for "sql-buffer is not set"
now includes the name of the current buffer.
(sql-mode): Set paragraph-separate and paragraph-start so that
sql-send-paragraph sends the entire SQL statements, even if it
contains indented lines.
Set version to 1.3.2
(sql-solid-program): Added support for solid.
(sql-help): Doc mentions sql-solid.
(sql-solid): Entry function for Solid.
(sql-buffer): Doc explains the use of the variable and how to change it.
(sql-mode-menu): Included entries for sql-show-sqli-buffer and
sql-change-sqli-buffer; sql-send-region and sql-send-buffer are
disabled if sql-buffer doesn't have a process; sql-send-paragraph is new.
(sql-show-sqli-buffer): New function to display the value of sql-buffer.
(sql-change-sqli-buffer): New function to change sql-buffer.
(sql-mode): Doc explains how to change sql-buffer.
(sql-send-paragraph): New function to send a paragraph.
(sql-mode-map): Added keybinding for sql-send-paragraph.
(sql-mysql): Doc corrected.
(sql-ms): Doc corrected.
(sql-server): Doc fix.
(sql-mysql): Added the use of sql-server to specify the host,
sql-database now specifies database instead of host.
(sql-mode-menu): Send... menu items are only active if sql-buffer
is non-nil.
(sql-help): Changed tag of entry functions a bit.
(sql-mode): Made sql-buffer a local variable, changed the
documentation: removed instructions to add *.sql files to
auto-mode-alist, added documentation for having mutliple SQL
buffers sending their stuff to different SQLi buffers, each
running a different process.
(sql-postgres): Quoted *SQL* in doc string.
(sql-ms): Likewise.
(sql-ingres): Likewise.
(sql-ingres): Quoted *SQL* in doc string, added references to
sql-user and sql-password used during login.
(sql-sybase): Quoted *SQL* in doc string, added comma.
(sql-oracle): Likewise.
(sql-interactive-mode): Added extensive documentation for having
mutliple SQL buffers sending their stuff to different SQLi
buffers, each running a different process.
(sql-buffer): Changed doc from *SQL* to SQLi.
(sql-get-login): Doc fix.
(sql-pop-to-buffer-after-send-region): Improved documentation.
(sql-mysql-program): Added MySQL support.
(sql-prompt-length): Made prompt-length configurable.
(sql-mode-syntax-table): Made apostrophe (') be a string delimiter.
(sql-help): Added MySQL support, changed documentation.
(sql-send-region): A message is displayed if something is sent.
(sql-mode): Added buffer-local comment-start.
(sql-interactive-mode): Use sql-prompt-length to set left-margin.
(sql-interactive-mode): Added buffer-local comment-start.
(sql-oracle): Set sql-prompt-length.
(sql-sybase): Set sql-prompt-length.
(sql-mysql): Added MySQL support.
(sql-ingres): Set sql-prompt-length.
(sql-ms): Set sql-prompt-length.
(sql-postgres): Set sql-prompt-length.
faces, eliminating the need to load font-lock before loading sql.
(sql-mode-oracle-font-lock-keywords): Likewise.
(sql-mode-postgres-font-lock-keywords): Likewise.