SQL mode version 2.1

Redesigned product specific definition and handling.  Includes many
bug fixes and enhancements.
This commit is contained in:
Michael Mauger 2010-05-09 22:07:58 -04:00
parent 4e569696da
commit 7492acc936
3 changed files with 1239 additions and 590 deletions

View file

@ -161,6 +161,38 @@ is just left as is in the message, so it is not lost.
For example, adding "(diff-mode . ((mode . whitespace)))" to your
.dir-locals.el file, will turn on `whitespace-mode' for *vc-diff* buffers.
** 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.
*** Added ability to login with a port on MySQL.
The custom variable `sql-port' can be specified for connection to
MySQL servers.
*** Custom variables control prompting for login parameters.
Each supported product has a custom variable `sql-*-login-params'
which is a list of the parameters to be prompted for before a
connection is established.
*** 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.
*** SQL interactive mode will replace tabs with spaces.
This prevents the comand interpretter for MySQL and Postgres from
listing object name completions when being sent text via
`sql-send-*' functions.
*** An API for manipulating SQL product definitions has been added.
** s-region.el is now declared obsolete, superceded by shift-select-mode
enabled by default in 23.1.

View file

@ -1,3 +1,67 @@
2010-05-09 Michael R. Mauger <mmaug@yahoo.com>
* progmodes/sql.el: Version 2.1
(sql-product-alist): Redesigned structure of product info.
(sql-product, sql-user, sql-server, sql-database): Safe
variables.
(sql-port, sql-port-history): New variables.
(sql-interactive-product): New variable.
(sql-send-terminator): New variable.
(sql-imenu-generic-expression): Added "Types" imenu entry.
(sql-oracle-login-params, sql-sqlite-login-params)
(sql-mysql-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)
(sql-oracle-scan-on): New variables.
(sql-mode-map): Added C-c C-i to start interactive mode.
(sql-mode-menu): Updated existing menu entries.
(sql-font-lock-keywords-builder): Compile-time font-lock
optimization.
(sql-mode-oracle-font-lock-keywords)
(sql-mode-postgres-font-lock-keywords)
(sql-mode-ms-font-lock-keywords)
(sql-mode-sybase-font-lock-keywords)
(sql-mode-informix-font-lock-keywords)
(sql-mode-interbase-font-lock-keywords)
(sql-mode-ingres-font-lock-keywords)
(sql-mode-solid-font-lock-keywords)
(sql-mode-mysql-font-lock-keywords)
(sql-mode-sqlite-font-lock-keywords)
(sql-mode-db2-font-lock-keywords)
(sql-mode-linter-font-lock-keywords): Updated initialization to
reduce run-time complexity.
(sql-add-product, sql-del-product): New functions.
(sql-set-product-feature, sql-get-product-feature): New functions.
(sql-product-font-lock): Update product API.
(sql-add-product-keywords): New function.
(sql-highlight-product): Update product API.
(sql-help-list-products): New function.
(sql-help): Dynamically lists free and non-free products.
(sql-get-login): Corrected bug in handling history and added
prompt for port.
(sql-copy-column): Copy without properties.
(sqli-input-sender): Apply filters to SQLi input.
(sql-query-placeholders-and-send): Obey `sql-oracle-scan-on'
setting. Implement as a filter.
(sql-escape-newlines-filter): Implement as a filter.
(sql-remove-tabs-filter): New function.
(sql-send-magic-terminator): New function.
(sql-send-string): Implement magic terminator.
(sql-send-region): Use `sql-send-string'.
(sql-interactive-mode): Use product API.
(sql-product-interactive): Use product API.
(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): New function.
(sql-connect-oracle, sql-connect-sybase, sql-connect-informix)
(sql-connect-sqlite, sql-connect-mysql, sql-connect-solid)
(sql-connect-ingres, sql-connect-ms, sql-connect-postgres)
(sql-connect-interbase, sql-connect-db2, sql-connect-linter): Use
`sql-connect'.
2010-05-09 Stefan Monnier <monnier@iro.umontreal.ca>
* minibuffer.el (completion-pcm-complete-word-inserts-delimiters):

File diff suppressed because it is too large Load diff