1) RELEASE SAVEPOINT statement is added
2) SAVEPOINT statement now re-establishes existing savepoint with the same name
3) all savepoint stuff is changed to use single BLR verb
2. ROWS_AFFECTED is renamed to ROW_COUNT
(see SQL2002 specification)
3. CONNECTION_ID/TRANSACTION_ID are renamed to CURRENT_CONNECTION/CURRENT_TRANSACTION
(see SQL2002 recommendations for context functions)
4. Solved most of the shift/reduce conflicts and all reduce/reduce conflicts in the grammar
5. Fixed ambiguity in ORDER BY clause, when both the value and the clause itself could contain COLLATE word
(now explicit collation sequence of the value is used in the ordering logic)
6. Some of newly introduced tokens are made non-reserved
7. Added code to enable ORDER/GROUP BY ordinal when asterisk is used in the select list
(not sure which version it should go, so it's commented out so far)
2. Added DSQL support for parametrized events.
3. Fixed bug with cursors in triggers.
4. Added support for runtime trigger action checks (INSERTING/UPDATING/DELETING).
5. Fixed bug with concatenation and trashed RDB$FIELD_LENGTH.
New helper class created to serve it properly.
2. Added exception re-raise semantics.
Syntax: EXCEPTION;
If there was handled exception, re-initiate it, otherwise evaluate to no-op.
3. Implemented run-time exception messages.
Syntax: EXCEPTION <exception_name> [<value>];
If <value> is specified, evaluate it and use instead of RDB$EXCEPTION_MESSAGE.
4. Added new SQLCODE and GDSCODE system variables.
Available in procedures/triggers only.
If there wasn't any exception raised, return zero (success), otherwise return an error code.
5. Implemented ROWS_AFFECTED system variable.
Available in procedures/triggers only.
Count rows affected by the last INSERT/UPDATE/DELETE statement.
For any other statement, result is always zero.
in dialect 3 only.
2. BREAK statement has been disabled in triggers (like EXIT) because of the known
BLR limitations. I hope it can be safely used in stored procedures though, hence
I'd prefer to have it officially documented.
3. More complete implementation of the GROUP BY clause. You can group by internal
functions and have ability to use more complex grouping conditions than before.
By Arno Brinkman.
4. Allowed declaring and defining local variables at the same time.
By Claudio Valderrama.
Syntax: declare [variable] <var_name> <var_type> [{= | default} <default_value>]
5. Allowed ordinals to be used in the GROUP BY clause (like ORDER BY).
By Arno Brinkman.
Example: select extract(month from order_date), sum(order_sum) from orders group by 1
6. The first approach to the ALTER VIEW statement. Only high-level implementation so far.
A lot of work in dfw.epp, metd.epp, etc. still required.
By Dmitry Yemanov.