NF: When formatting INSERT statements, the sqlutil_align_comma is also respected to place each column on a newline. NF: When formatting UPDATE statements and sqlutil_align_comma is set comments at the end of the line were removed (Rodrigo Laporte).
NF: Now an extra check is made for the Align plugin. If not found when attempting to format a SQL statement a friendly message is shown (Enrico Teotti). NF: Updated documentation added the Global Options section plus updated the Customization section. NF: Problem: Keywords within strings were being formatted (Olivier Laurent). Solution: Added an option, g:sqlutil_use_syntax_support, to determine whether or not to use Vim's syntax support to decide if the keyword is highlighted as a "string". If so, leave it and move on to the next keyword. Default value is 1 (enabled). See |sqlutil-customization| for details on usage. NF: Added an option, g:sqlutil_syntax_elements, to allow the user to decide which syntax elements should be considered a string. Default value is 'Constant,sqlString'.
NF: Added a tutorial to take users through the common features of the plugin. NF: Added an option, g:sqlutil_align_keyword_right, to left or right (default) align the keywords (Per Winkvist). NF: Documented and added new global variables (g:sqlutil_menu_root, g:sqlutil_menu_priority) to customize the location of the SQLUtil menu. BF: SQLite used slightly different syntax specifying UNIQUE values and would not correctly generate a column list from the CREATE TABLE statement (Oliver Peters). BF: Ensured all normal commands used ! to ensure no mappings interfered with the commands (Benoit Mortgat).
NF: Added new menu links so that commonly used options can be quickly and easily toggled without having to remember the global variable names or values. For example, if you cut the menu so that it floats beside your buffer you can easily hit "Toggle Align Where" or "Uppercase Keywords". NF: Using the menu_mode option you can control if and where the SQLUtil menu is created. See the menu_mode option for more details. NF: Added the default maps to the menus. If you use a floating menu, or simply view the menu you can more easily memorize your most commonly used maps. BF: UPPER and lower case of keywords did not work for multi-word keywords (ORDER BY, LEFT OUTER JOIN, ...).
NF: Added additional statements to g:sqlutil_col_list_terminators BF: Forgot to increment g:loaded_sqlutilities
BF: If a statement has parenthesis inside of strings, the formatter was not ignoring them. This could result in the formatter reporting there were mismatched parenthesis. Example: select 'string' + '(' from dummy BF: If a keyword was not followed by a space, it was not placed on a newline. Example: SELECT * FROM(T1) BF: Nested function calls could potentially lead to an endless loop.
BF: When g:sqlutil_align_comma=1 and a select list spanned more than 1 line (via functions calls and so on), it was possible the remaining comma separated list was not aligned properly.
NF: Enhanced the feature to change the case of keywords, to include the optional join words, left, right, full, inner, outer. These words were missed prior to this change and only the JOIN word was capitalized. CH: Changed the default for sqlutil_use_tbl_alias = 'a' (ask) from being on at all times. This can be overridden in your vimrc.
NF: Added new option g:sqlutil_use_tbl_alias, which is on by default. When creating a column list for a table, it will add a table alias to each column. The table alias is calculated based on rules. This feature has 3 settings: n - no alias d - default calculated alias a - ask the user using default alias NF: Updated g:sqlutil_col_list_terminators to handle some additional cases. BF: In some cases -@- could be left in the query. This seems to be a bug in Vim, where the marks could move. Unsure why, but put a workaround in. BF: When g:sqlutil_align_comma=1, and the lines did not begin with commas, the formatting was incorrect. BF: When searching through buffers (SQLU_CreateColumnList), the alternate buffer could be changed.
NF: Added support for window functions (OVER, PARTITION BY, ROWS, RANGE), and additional Oracle SELECT keywords (DIMENSION, MEASURES, ITERATE, WITHIN GROUP, IGNORE, KEEP, RETURN, RULES)
New features added: New global variables to customization some aspects of the formatting: sqlutil_align_where - aligns the =, >=, <=, ... sqlutil_align_comma - places the column lists in select statement on new lines sqlutil_align_first_word - see examples You can change the case of the keywords while formatting. A help has been created to list all the various options and examples for each of them. Thanks to Ronald Speelman, for suggestions and testing.
NF: Added global variable sqlutil_col_list_terminators for customization. NF: Changed all functions to be prefixed bySQLU_ for consistency. BF: Fixed SQLU_GetColumnDataType andSQLU_GetColumnDef to handle tabs. BF: -@- could be left after incorrect formatting.
NF: Support the formatting of FUNCTIONS or stored procedures used as derived tables. This will nest the function calls on new lines and correctly split the paranthesis on new lines if the function call is longer than one line. You would notice this mainly in the SELECT column list. NF: Support the formatting of nested CASE statements. NF: Added the GetColumnDataType command NF: Improved primary key determination, it no longer requires the PRIMARY KEY statement to be part of the CREATE TABLE statement, it can be part of an ALTER TABLE statement. NF: Improved formatting of SQL keywords. INSERT INTO statement, the INTO will no longer be split onto a new line. Now correctly format the various JOIN keywords: NATURAL RIGHT OUTER JOIN will be placed one online instead of just the JOIN keyword as before. BF: Did not properly handle the formatting of nested open paranthesis in all cases. BF: Using new technique to determine how to change the textwidth to utilitize more screen space when wrapping long lines. nested open paranthesis in all cases. NF: Create procedure uses shiftwidth for indent. BF: Save/restore previous search.
Improved a number of items. 1. If a PRIMARY KEY cannot be found for a given table the WHERE clause will contain all columns. 2. Made the lookup for primary keys smarter. Now the script will also look for ALTER TABLE ... ADD PRIMARY KEY statements instead of just the PRIMARY KEY clause as part of the CREATE TABLE statement. 3. If hidden is set, the script will cycle through the buffers looking for the table. Now, it will leave the cursor positioned in the same location when it leaves hidden buffers. 4. You can now define g:sqlutil_cmd_terminator. It currently defaults to ";". This is used when looking gathering columns lists.