SUPERSERVER has 4 different meanings in our code:
- this is milticlient server (replaced with Config::getMultiClientServer())
- use shared data cache (replaced with Config::getSharedCache())
- use shared metadata cache (replaced with macro SHARED_METADATA_CACHE)
- database are NOT shared between processes (replaced with getSharedDatabase())
2. Use fb_smp_server as both superclassic and classic binary on posix
(xinetd autodecection is done).
3. Small posix build cleanup.
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.
Use traditional firebird configuration files format in all places (intl, trace, etc.).
Add per-database configuration facility to aliases.conf (currently 15 parameters from firebird.conf).
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;