January to December 2022

December 2022

master branch

  • Finished and merged RDB$BLOB_UTIL.
  • Fixed docker Linux build after introduction of libcds.
  • Remove appveyor build from master.
  • Improvement to make TARGET usage allowing usage of Release/Debug independently of DefaultTarget. Add libcds cleanup.
  • Fixed Android package version.
  • Fixed #7422 - Seek in temporary blob level 0 makes read return wrong data.
  • Investigating usage of vcpkg to maintain external dependencies.
  • Fixed some warnings.

November

master branch

  • Fixed #7379 - BLOB_APPEND with existing blob accepts malformed string.
  • Improvement #7382 - Performance improvement for BLOB copying.
  • Specifying dynamic external routines.
  • Fixed #7385 - Broken lock of statements cache during multithreaded index activation.
  • Improvement #7399 - Simplify client library build.
  • Investigating hang happening in #7385.
  • Fixed #7391 - AV when compiling stored procedure.
  • Started implementation of dynamic external routines.

v4 branch

  • www
  • Add Linux and MacOS v4 snapshots to https://github.com/FirebirdSQL/snapshots/releases/tag/snapshot-v4.0.
  • Tried to setup Windows snapshots using GitHub Actions self-hosted runner, but it was incompatible with WinCompile's Windows 2008.

Others

  • Updated GitHub action mknejp/delete-release-assets to fix problems in our workflow and sent changes upstream.
  • Research usage of antlr4

October

master branch

  • - Continuing working in new getInfo() API.
  • #7350 - SKIP LOCKED clause for SELECT WITH LOCK, UPDATE and DELETE.
  • Review of opened PRs thinking on v5 beta 1.
  • #7338 - Public interfaces: support for C++11 and add version definition (#define) for conditional compilation.
  • Bringing RDB$BLOB_UTIL up to date.
  • Fixed crash in debug build related to conditional indexes.
  • Re-thinking RDB$BLOB_UTIL after BLOB_APPEND.
  • Investigating usage of vcpkg to maintain external dependencies.
  • Replace deprecated GitHub Actions' set-output.

v4 branch

  • #6964 - Backported fix for --with-system-re2 configure option for using system-wide libre2
  • #7369 - 4.0.2: build fails against re2 20220601.

Others

  • Research usage of antlr4

September

master branch

  • Fix Android packaging issues.
  • Split Android package into two phases, second one to run in emulator.
  • Add GitHub action to create full package for x86, x64, arm32 and arm64.
  • Added tzdata to Android packages.
  • #7317 - Automated Linux ARM32/64 builds using crosstool-ng toolchain and QEMU. Changed x86/x64 builds to also use crosstool-ng.
  • Fixed #7309 - Firebird 5.0 server does not release memory after INSERT query.
  • Fixed #5749 - Token unknown error on formfeed in query [CORE5479].
  • Start working in new getInfo() API.
  • Added unit tests for Clumplet InfoResponse kind.

August

master branch

  • Finished implementation of unit tests.
  • Improve Windows build process making it generating public files directly in the output directory and separated by configuration.
  • Fix problems with Windows package scripts.
  • Improve Windows build speed not building both release and debug external libraries.
  • Store snapshots in FirebirdSQL/snapshots.
  • Specification and discussion of new statement EXECUTE SQL.
  • Work in named parameters support.
  • Change release filenames.
  • Make Android build work with modern NDK.

v4 branch

  • Fixed #7243 - Some UNICODE characters can lead to wrong CONTAINING evaluation when lower/upper uses different number of bytes in its encoding.
  • Reviewed and applied fix for #7241 - Mac OS installer - firebird user not created correctly if group already exists.

v3 branch

  • Finished fix for #7237 - Starting operator become unstable on indexed varchar fields.

Others

  • Added ChangeLog generator action to make creation of CHANGELOG.md easier.
  • Forked GitHub Action https://github.com/mknejp/delete-release-assets
  • to improve for Firebird needs.

July

master branch

  • Fixed #7220 - TYPE OF COLUMN dependency not tracked in package header and external routines.
  • Fixed #7227 - Dependencies of subroutines are not preserved after backup restore.
  • Research related to #3863.
  • Started implementation of unit tests.
  • Make MacOS GitHub Actions build use static libc++ to avoid problems with shared C++ libraries.
  • Cache MacOS libicu build in GitHub Actions to make build faster.

v4 branch

  • Fixed #7229 - ALTER COLUMN DROP IDENTITY does not reset generator name in metadata cache

v3 branch

  • Started fix for #7237 - Starting operator become unstable on indexed varchar fields.

June

master branch

  • Profiler: finished implementation of remote session profiling.
  • Reviewed feature "Parallel backup, restore and sweep".
  • Profiler: automatic flush.
  • Profiler: improve timings accurary.
  • Benchmarks and discussions related to record encoding and tested increase of MAX_RECORD_SIZE.
  • Profiler: add TOTAL_TIME column to PLG$PROF_REQUESTS. Add view PLG$PROF_STATEMENT_STATS_VIEW.
  • Profiler: improve PSQL stats in corner cases.
  • Fixed #7202 - ISQL -ch utf8 (Windows only): either silently quits to OS or issues non-expected 'malformed string' when non-ascii character occurs in the typed command.
  • Research and discussion about ISQL problem detecting pipe as interactive in Windows.
  • Update VS docker build to 16.11.16.
  • Fix build with VS build tools instead of Visual Studio.
  • Profiler: design for future extensions with different timings types.
  • Fixed #6869 - Domain CHECK-expression can be ignored when we DROP objects that are involved in it.
  • Fixed #6807 - Regression in FB 4.x : "Unexpected end of command" with incorrect line/column info.
  • Added workflow to trim trailing spaces from source files and avoid unnecessary merge conflicts.

v4 branch

  • Fixed Windows empbuild Debug build.
  • Fixed #7202 - ISQL -ch utf8 (Windows only): either silently quits to OS or issues non-expected 'malformed string' when non-ascii character occurs in the typed command.
  • Backported improvement #7038 - Improve performance of STARTING WITH with insensitive collations.
  • Reviewed PR #7217 - Fix a bug when it was not allowed to execute DROP PACKAGE BODY for a package with a procedure even if a user has DROP ANY PACKAGE privilege.
  • Research related to #7171 - Authentication error / Connection shutdown problems.
  • Fixed #7222 - Dependencies of packaged functions are not tracked.

May

master branch

  • Profiler: various changes accordingly to review comments.
  • Working in internal DSL to replace GDML.
  • Fixed #7176 - Incorrect error "Invalid token. Malformed string." with union + blob + non utf8 varchar.
  • Put debug option DSQL_KEEP_BLR into statement cache's key.
  • Add possibility to have default expressions in system packages' procedures and functions parameters.
  • Fixed #7179 - Wrong error message - "string right truncation. expected length 30, actual 30"
  • Fixed #7183 - Regression when derived table has column evaluated as result of subquery with IN(), ANY() or ALL() predicate: "invalid BLR at offset ... / context already in use".
  • Profiler: started implementation of remote session profiling.

v4 branch

  • Fixed #7179 - Wrong error message - "string right truncation. expected length 30, actual 30"
  • Reviewed fix for #7178: Add PUBLIC user to sql script condition which selects privileges from granted user roles.

v3 branch

  • Investigation of #7190 - TRIM function is wrongly working in collate UNICODE_CI_AI.

April

master branch

  • Working in internal DSL to replace GDML.
  • Fixed problem found by Dmitry where node->getDesc is called after parts of csb is released.
  • Improvement #7169 - Improve ICU version mismatch diagnostics.
  • Adjust logic of POSIX DlfcnModule::findSymbol to avoid problems when same library is loaded through different file names (symbolic links /directly).

v4 branch

  • Fixed #7167 - Incorrect transliteration of field names in constraint violation errors.
  • Fixed #7168 - Ignore missing UDR libraries during restore.
  • Fixed #7124 - Inconsistent RDB$USER_PRIVILEGES after dropping identity.
  • Fixed #7123 - ISQL does not extract "INCREMENT BY" for IDENTITY column.

v3 branch

  • Analized test for CORE-1885.

March

master branch

  • Compiled statement cache.
  • Make DeclareLocalTableNode::execute truncate the table if it already had data from a previous execution.
  • Simplify Statement::verifyAccess for internal statements.
  • Unset req_in_use in EXE_release.
  • Do not checkCancelState twice when there is no contention in thread_db::reschedule().
  • Local tables design.
  • Working in internal DSL to replace GDML.
  • Verified problem (record not found for user) reported by Pavel Zotov after compiled statement cache.
  • Fixed problem with DDL+DML in the same transaction with compiled statement cache - reported by Pavel Zotov.

v4 branch

  • Remove deprecated GitHub Actions Windows 2016 environment.

v3 branch

  • Fixed #7094 - Incorrect indexed lookup of strings when the last keys characters are part of collated contractions and there is multi-segment insensitive descending index.
  • Fixed #7140 - Wrong select result in case of special sort character.

February

master branch

  • Refactor statement and request parts so multiple DSQL requests could be created from a single compiled statement paving the ground for compiled statement cache.
  • Finished addition of table MON$COMPILED_STATEMENTS and columns MON$STATEMENTS.MON$COMPILED_STATEMENT_ID and MON$CALL_STACK.MON$COMPILED_STATEMENT_ID.
  • Compiled statement cache initial work and discussions.
  • Refactor: avoid prefix Jrd in Statement class and Statement/jrd_req accessors/variables.
  • Removed bad asserts in INTL libraries.
  • Refactor: renamed jrd_req class to Request.
  • Started development of compiled statement cache.

v4 branch

  • Verified problem with FB in OpenSUSE 15.3 which was reported as bugged - not confirmed.

January

master branch

  • Worked in CALL statement.
  • Improvement #4769 - Allow sub-routines to access variables/parameters defined at the outer/parent level [CORE4449].
  • Code cleanup: mark nodes and stream classes as final as possible and replace FB_FINAL by final.
  • Tested setting UTF-8 codepage through manifest for allow acessing database with Unicode characters in file name.
  • Cleanup: remove blr_parameter3.
  • WIP - DSQL refactor for compiled statement cache.

v4 branch

  • Fixed #7090 - Performance degradation with CURRENT_DATE, LOCALTIME and LOCALTIMESTAMP.
  • Improvement #7092 - Improve performance of CURRENT_TIME.
  • Refactor request's timestamp handling.
  • #7041 - Helping with MacOS M1 port.
  • Fixed #7112 - Avoid unload of plugins in MacOS due to problematic reload of them.
  • Fixed #7108 - Firebird does not find an record when adding a foreign key.

v3 branch

  • Use clock_gettime in MacOS.

others

  • Helping with C# mappings for the OO API.
Adriano dos Santos Fernandes
Sao Paulo, Brazil