Join Firebird!

Join Firebird Foundation to support Firebird SQL development and receive multiple bonuses

Follow Us

Select your media preference

Newsletter

Subscribe to Firebird’s Newsletter to receive the latest news

Developer's Report: DSQL/INTL Development and General Coding
April to August 2021

August 2021

master branch
  • Finished feature #6815 - Support multiple rows for DML RETURNING
  • Fixed BLR format problem present at least since v1.5
  • Add some utility code (GenericMap, RefPtr, AutoPtr) to improve codebase
  • Add VSCode C++ config for better editing experience
  • Add noreturn attribute to raise functions
  • Task #6933 - Remove blr_fetch, never generated by Firebird and its tools
  • Adjust build for MSVC 19
  • Started working in #6681 - Support for WHEN NOT MATCHED BY SOURCE for MERGE statement [CORE6448].
V.4 branch
  • Tested and reviewed PR #6914 - Allow keywords in locales when creating ICU collations
  • Improvement #6915 - Allow attribute DISABLE-COMPRESSIONS in UNICODE collations
  • Backported fix for #6913 - Buffer overflows in getInfo APIs
  • Tests and discussion about time zones and ICU installation in the client
  • Fixed error in batch example.
Fb/Java
  • Fixed build in GitHub Actions
  • Pull requests review.

July

master branch
  • Fixed #6873 - SIMILAR TO does not use index when pattern starts with non-wildcard character (in contrary to LIKE)
  • Working on feature #6815 - Support multiple rows for DML RETURNING
  • Fixed problem happening when epp file is modified after initial build
  • Fixed #6913 - Buffer overflows in getInfo APIs.
V.4 branch
  • Fixed #6875 - Significant performance regression of SIMILAR TO and SUBSTRING(SIMILAR) when pattern is taken from variable (rather than directly specified)
  • Fixed #6887 - Invalid SIMILAR TO patterns may lead memory read beyond string limits
  • Fixed warning deleting pointer to incomplete type 'Jrd::PatternMatcher' may cause undefined behavior
  • Fixed BLR BLOB filter for blr_marks following blr_erase
  • Fixed BLR BLOB filter for blr_receive_batch
  • Feature #6910 - Add way to retrieve statement BLR with Statement::getInfo and ISQL's SET EXEC_PATH_DISPLAY BLR
Future versions
  • Design and discussion: New getInfo2 API
  • Design and discussion: Local temporary tables internals

June

master branch
  • Removed QLI and adjust the builds and TCS tests
  • Created PR for #6839 - Weird string comparison with index
  • Fixed #6801 - Error recompiling a package with some combination of nested functions
  • Do not remove versioned filed with make clean
  • Improvement #6740 - Allow parenthesized query expression for standard-compliance [CORE6511].
V.4 branch
  • Improvement #6872 - Indexed STARTING WITH execution is very slow with UNICODE collation
  • Started fix for #6875 - Significant performance regression of SIMILAR TO and SUBSTRING(SIMILAR) when pattern is taken from variable (rather than directly specified).
V.3 branch
  • Fixed #5534 - String truncation exception on UPPER/LOWER functions, UTF8 database and some multibyte characters
  • Fixed #6854 - Crash occurs when use SIMILAR TO and compare string with pattern that contains non-ascii character with suppressed exception handling (or "Invalid SIMILAR TO pattern" raises otherwise)
  • Created PR for backported fix for CORE-5611 - Higher memory consumption for prepared statements
  • Replace deprecated ubuntu-16.04 by ubuntu-20.04 in GitHub Actions.

May

Master branch

  • Fixed #6787 - MON$ATTACHMENTS.MON$TIMESTAMP should use its session original time zone
  • Improvement #6788 - Extend EXTRACT to extract time zone strings
  • Improvement #6786 - Add session time zone to system context
  • Fixed #6790 - MON$ATTACHMENTS.MON$TIMESTAMP is incorrect when DefaultTimeZone is configured with time zone different from the server's default
  • Reviewed PR #315 - Compile an external trigger before executing if it was deleted
  • Fixed memory leaks in external triggers examples
  • Improvement #6794 -Add MON$SESSION_TIMEZONE to MON$ATTACHMENTS
  • Fixed #6796 - Buffer overflow when padding line with national characters causes ISQL crash
  • Dynamic libncurses versus static libtermcap patch and discussion
  • Fixed #6800 - Client config DefaultTimeZone is not passed to server when isc_dpb_session_time_zone is not set
  • Improvement #5588 - Support full SQL standard binary string literal syntax
  • Improvement #5589 - Support full SQL standard character string literal syntax
  • Feature #6798 - Add built-in functions UNICODE_CHAR and UNICODE_VAL to convert between Unicode code point and character
  • Some code cleanup
  • Updated build to C++17 standard
  • Updated re2 library to latest stable version
  • Fixed TCS tests for v4 and forked it for v5.
V.3 branch
  • Backported #5913 - Increase number of formats/versions of views from 255 to 32K (CORE-5647).
Future
  • Continuing INTL refactoring, integration in the new API
  • Researching usage of smart pointer in cloop generated code
  • Reviewing RDB$KEYWORDS and RDB$BLOB_UTIL pull requests
  • Research about increasing max. VARCHAR length to 64K
  • Proposed CALL statement.

April

master branch
  • Fixed CORE-6527 - Regression: inline comment of SP parameter with closing parenthesis leads to incorrect SQL when trying to extract metadata
  • Fixed some TCS tests
  • Frontported fix for CORE-6517 - CREATE DATABASE fails with 'Token unknown' error when DB name is enclosed in double quotes and 'DEFAULT CHARACTER SET' is specified after DB name
  • Fixed CORE-6494 - Inconsistent translation "string->timestamp->string->timestamp" in dialect 1
  • Asked Dmitry question about SKD_* and time zones
  • Fixed CORE-6542 - Implementation of SUBSTRING for UTF8 character set is inefficient
  • Fixed TCS tests for CORE-6494.
V.3
  • Backported fix for CORE-6527 - Regression: inline comment of SP parameter with closing parenthesis leads to incorrect SQL when trying to extract metadata
  • Fixed CORE-6517 - CREATE DATABASE fails with 'Token unknown' error when DB name is enclosed in double quotes and 'DEFAULT CHARACTER SET' is specified after DB name
  • Backported fix for CORE-6494 - Inconsistent translation "string->timestamp->string->timestamp" in dialect 1
  • Integrating Ubuntu build in GitHub Actions.
Future versions
  • Continuing INTL refactoring, integration in the new API and improvements
  • Working in unit tests in the core code
  • Memory manager cleanup / external libraries problem investigation.
General
  • Working on Jira tracker migration to GitHub issues
Adriano dos Santos Fernandes
Sao Paulo, Brazil
April to August 2021

August 2021

master branch
  • Finished feature #6815 - Support multiple rows for DML RETURNING
  • Fixed BLR format problem present at least since v1.5
  • Add some utility code (GenericMap, RefPtr, AutoPtr) to improve codebase
  • Add VSCode C++ config for better editing experience
  • Add noreturn attribute to raise functions
  • Task #6933 - Remove blr_fetch, never generated by Firebird and its tools
  • Adjust build for MSVC 19
  • Started working in #6681 - Support for WHEN NOT MATCHED BY SOURCE for MERGE statement [CORE6448].
V.4 branch
  • Tested and reviewed PR #6914 - Allow keywords in locales when creating ICU collations
  • Improvement #6915 - Allow attribute DISABLE-COMPRESSIONS in UNICODE collations
  • Backported fix for #6913 - Buffer overflows in getInfo APIs
  • Tests and discussion about time zones and ICU installation in the client
  • Fixed error in batch example.
Fb/Java
  • Fixed build in GitHub Actions
  • Pull requests review.

July

master branch
  • Fixed #6873 - SIMILAR TO does not use index when pattern starts with non-wildcard character (in contrary to LIKE)
  • Working on feature #6815 - Support multiple rows for DML RETURNING
  • Fixed problem happening when epp file is modified after initial build
  • Fixed #6913 - Buffer overflows in getInfo APIs.
V.4 branch
  • Fixed #6875 - Significant performance regression of SIMILAR TO and SUBSTRING(SIMILAR) when pattern is taken from variable (rather than directly specified)
  • Fixed #6887 - Invalid SIMILAR TO patterns may lead memory read beyond string limits
  • Fixed warning deleting pointer to incomplete type 'Jrd::PatternMatcher' may cause undefined behavior
  • Fixed BLR BLOB filter for blr_marks following blr_erase
  • Fixed BLR BLOB filter for blr_receive_batch
  • Feature #6910 - Add way to retrieve statement BLR with Statement::getInfo and ISQL's SET EXEC_PATH_DISPLAY BLR
Future versions
  • Design and discussion: New getInfo2 API
  • Design and discussion: Local temporary tables internals

June

master branch
  • Removed QLI and adjust the builds and TCS tests
  • Created PR for #6839 - Weird string comparison with index
  • Fixed #6801 - Error recompiling a package with some combination of nested functions
  • Do not remove versioned filed with make clean
  • Improvement #6740 - Allow parenthesized query expression for standard-compliance [CORE6511].
V.4 branch
  • Improvement #6872 - Indexed STARTING WITH execution is very slow with UNICODE collation
  • Started fix for #6875 - Significant performance regression of SIMILAR TO and SUBSTRING(SIMILAR) when pattern is taken from variable (rather than directly specified).
V.3 branch
  • Fixed #5534 - String truncation exception on UPPER/LOWER functions, UTF8 database and some multibyte characters
  • Fixed #6854 - Crash occurs when use SIMILAR TO and compare string with pattern that contains non-ascii character with suppressed exception handling (or "Invalid SIMILAR TO pattern" raises otherwise)
  • Created PR for backported fix for CORE-5611 - Higher memory consumption for prepared statements
  • Replace deprecated ubuntu-16.04 by ubuntu-20.04 in GitHub Actions.

May

Master branch

  • Fixed #6787 - MON$ATTACHMENTS.MON$TIMESTAMP should use its session original time zone
  • Improvement #6788 - Extend EXTRACT to extract time zone strings
  • Improvement #6786 - Add session time zone to system context
  • Fixed #6790 - MON$ATTACHMENTS.MON$TIMESTAMP is incorrect when DefaultTimeZone is configured with time zone different from the server's default
  • Reviewed PR #315 - Compile an external trigger before executing if it was deleted
  • Fixed memory leaks in external triggers examples
  • Improvement #6794 -Add MON$SESSION_TIMEZONE to MON$ATTACHMENTS
  • Fixed #6796 - Buffer overflow when padding line with national characters causes ISQL crash
  • Dynamic libncurses versus static libtermcap patch and discussion
  • Fixed #6800 - Client config DefaultTimeZone is not passed to server when isc_dpb_session_time_zone is not set
  • Improvement #5588 - Support full SQL standard binary string literal syntax
  • Improvement #5589 - Support full SQL standard character string literal syntax
  • Feature #6798 - Add built-in functions UNICODE_CHAR and UNICODE_VAL to convert between Unicode code point and character
  • Some code cleanup
  • Updated build to C++17 standard
  • Updated re2 library to latest stable version
  • Fixed TCS tests for v4 and forked it for v5.
V.3 branch
  • Backported #5913 - Increase number of formats/versions of views from 255 to 32K (CORE-5647).
Future
  • Continuing INTL refactoring, integration in the new API
  • Researching usage of smart pointer in cloop generated code
  • Reviewing RDB$KEYWORDS and RDB$BLOB_UTIL pull requests
  • Research about increasing max. VARCHAR length to 64K
  • Proposed CALL statement.

April

master branch
  • Fixed CORE-6527 - Regression: inline comment of SP parameter with closing parenthesis leads to incorrect SQL when trying to extract metadata
  • Fixed some TCS tests
  • Frontported fix for CORE-6517 - CREATE DATABASE fails with 'Token unknown' error when DB name is enclosed in double quotes and 'DEFAULT CHARACTER SET' is specified after DB name
  • Fixed CORE-6494 - Inconsistent translation "string->timestamp->string->timestamp" in dialect 1
  • Asked Dmitry question about SKD_* and time zones
  • Fixed CORE-6542 - Implementation of SUBSTRING for UTF8 character set is inefficient
  • Fixed TCS tests for CORE-6494.
V.3
  • Backported fix for CORE-6527 - Regression: inline comment of SP parameter with closing parenthesis leads to incorrect SQL when trying to extract metadata
  • Fixed CORE-6517 - CREATE DATABASE fails with 'Token unknown' error when DB name is enclosed in double quotes and 'DEFAULT CHARACTER SET' is specified after DB name
  • Backported fix for CORE-6494 - Inconsistent translation "string->timestamp->string->timestamp" in dialect 1
  • Integrating Ubuntu build in GitHub Actions.
Future versions
  • Continuing INTL refactoring, integration in the new API and improvements
  • Working in unit tests in the core code
  • Memory manager cleanup / external libraries problem investigation.
General
  • Working on Jira tracker migration to GitHub issues
Adriano dos Santos Fernandes
Sao Paulo, Brazil