1) Make remote.lib independent of SUPERSERVER and containing only the protocol and authentication files (needed for both server and client)
2) Drop remote_classic.lib
3) Add the server-only remote files (listener and server.cpp) directly into fbserver.exe and fb_inet_server.exe
4) Make fbembed.dll, fbclient.dll, fbserver.exe and fb_inet_server.exe dependent on remote.lib
5) Explicitly add interface.cpp into fbclient.dll to benefit from the SUPERCLIENT stuff (override the code from remote.lib)
6) Some cleanup in fbclient/fbembed regarding common.lib
7) Add pwd.cpp into fbserver.exe and fb_inet_server.exe
Also, fixed compilation of fbudf.dll. The only easy way to do that was to re-link it (dynamically) with fbclient.dll. To be reconsidered, if required.
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;
Fixed the layering for WITH LOCK and (partially) ANY/ALL predicates.
Cleaned up the outdated code that never worked (mapping DISTINCT to an index, some VMS remainings).
Wiped out a lot of the pre-ODS11 optimizer logic. Some minor adjustments there.
Re-implemented the full outer join from scratch. This resolves CORE-2678 (full outer join cannot use available indices).
Resolved CORE-2796: DB_KEY is always zero for external tables.
Implemented the core part of the scrollable PSQL cursors. Implementation is still incomplete, but ready for testing.
Some other changes I don't recall at the moment ;-)
WARNING! The engine may be unstable. Please email me about any issues found.
2) Make exceptions in metadata charset and convert them to the client charset - this should fix CORE-2431
3) Support for "internal" (engine) DSQL statements and use in COMMENT ON
CORE-462 New option in addition to -V switch to specify a custom verbose interval
CORE-2540 Utilities need a more coherent way to show help and version
CORE-2541 Too many hardcoded messages in nbackup
CORE-2542 qli and nbackup accept arbitrary input after the first letter of an option
CORE-2543 nbackup may hide the real cause of failure
CORE-2545 Lack of several validations in gbak
CORE-2547 Utilities need to honor their minimum number of characters to recognize an option
CORE-2565 Many hardcoded messages in Trace Manager
Moving functions that don't depend on preprocessing to iutils.cpp in isql is the only alien change here.
- 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.