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.