Convert CONCATENATE and aggregate functions to it.
Fix some bugs:
- select sum(n) over (order by n2), sum(n) over (), n, n2 from x1;
- select (select 1 from x1 b where list(1, a.n) = 1) from x1 a;
- Renamed CompiledStatement to DsqlCompilerScratch and removed inheritance to dsql_req.
- Introduced DsqlCompilerStatement, moving things from dsql_req - not completelly shareable yet.
- Make dsql_req reference a DsqlCompilerStatement. DsqlCompilerScratch may be discarded in the future.
- Replaced AlterCharSetNode usage by PreparedStatement for the default collation in database creation.
- Changed METD API.
- Plugins API.
- Feature CORE-2700 - UDR (User Defined Routines) Engine - C++ API supporting functions, triggers and stored procedures.
- Feature CORE-2470 - Support for alternate format of strings literals.
- Feature CORE-2310 - DDL triggers.
- Feature CORE-2312 - PSQL Packages.
- Feature CORE-1209 - CONTINUE statement.
- Feature CORE-1180 - DDL syntax to change (not) nullable state of columns.
- Feature CORE-2090 - Support OVER () clause with current aggregate functions.
- Fixed CORE-2699 - Common table expression context could be used with parameters.
- Introduce ODS 12.0.
- Work in progress in type-safe parser.
- Refactor some DDL commands (procedures and triggers) from DYN to DdlNodes.
- Refactor virtual tables to use a class hierarchy instead of namespaces. This is basic thing, not based on the changes done in Vulcan. Window functions is based on this work.
- Refactor COMMENT ON and DROP FUNCTION from DYN to DdlNodes. COMMENT ON do not use GDML anymore, it uses DSQL with PreparedStatement class.
- Refactor EXECUTE BLOCK to StmtNodes.
- Refactor the IUDF to SysFunctions. That eliminates RDB$GET_CONTEXT and RDB$SET_CONTEXT from RDB$FUNCTIONS.
- dsql_req becomes a running request;
- CompiledStatement is derived from dsql_req. The compilation state previously in dsql_req comes to here;
- Rename many "request" parameters to "statement" where type is changed from dsql_req to CompiledStatement.
This changes makes easy the path to support compiled statement cache.
Notes:
1) Some features are disabled (via isc_wish_list) yet due to their incomplete implementation.
2) The parser may become unstable or cause regressions. It will be fixed ASAP.
Warning! Don't commit parse.cpp and dsql.tab.h, because:
1. I use another YACC version.
2. They must be removed from CVS at all.
Execute STATEMENT also here