TODO:
- Support regions.
- Reevaluate decision of store date/time components in memory in its own time zone instead of normalized to UTC.
- Fix ISQL's SET TIME command.
- Allow usage of "WITHOUT TIME ZONE" with TIME/TIMESTAMP data types.
- Think about compatibility of CURRENT_TIME/CURRENT_TIMEZONE.
- Support AT { LOCAL | TIME ZONE <zone> } expression.
- Support as needed and fix assertions when altering field types.
- Change conversion to string to put a space before the time zone.
- Big endian version of SKD_time_tz and SKD_timestamp_tz.
The codes for yet unmerged TZ support should not be a problem.
Regressions verified by Pavel Zotov, where these statements were not raising exception anymore:
select cast('true' as blob) > false as result from rdb$database;
select list(b, '') > false as result from (select 'true' as b from rdb$database);
* Raise underflow when close to 0 decfloat value casted to double
* High precision NUMERIC datatype based on DECFLOAT
* Fixed bulk insert mode in isql for decfloat values
* Enforce correct decQuad format after arithmetic operations
* Minimum docs for high precision NUMERIC/DECIMAL
* Some fixes of code suggested by Adriano:
- Use "const" keyword for Decimal128 constants declared internally
- Remove unneeded buffer initialization
- Remove unused function makeDecimalFixed()
- Follow firebird naming conventions to make code better readable and avoid possible conflicts with various .h files
- Added forgotten scale for DecimalFixed
Also some cleanups, the most important are:
- meaningful ctor on Jrd::Lock, helping to avoid code dup
- avoid unneeded h-file dependencies, making boot build engine dependent
2) Opened the gates to implement the standard USAGE privilege (CORE-2884). SQL support and validation logic are still to be developed.
3) Added the grant option to the owner permissions for packages, procedures and functions.
4) Misc cleanup and refactoring.
- 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.
and CORE-1079: Every attach of fbclient/fbembed library leaks 64KB of memory
To do it:
- created new template GlobalPtr, controlling access to destructors of global objects.
- applied it to global objects.
Also some related cleanup.
2. Added new types of clumplets to ClumpletReader and ClupmletWriter.
3. Applied modified ClumpletReader and ClupmletWriter to /remote and partially /jrd.
4. Added active protection from remote brute-force attack to services API.