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.