January to December 2022

Bugs fixed

  • #7109 : Content of DB file can be overwritten with zero characters in some (rare) cases.
  • #7103 : FB service hangs and can not be stopped after several 'DELETE FROM MON$STATEMENTS' being issued in order to stop ES/EDS which waits record for updating.
  • #7119 : Database statistics service could not find existing table(s)
  • #7134 : Firebird 4: Database page errors directly after gbak, which disappear after some calls of gfix
  • #7128 : Incorrect error message with isc_sql_interprete()
  • #7146 : Index is corrupted after multiple record updates
  • Attempt to fix recent crashes in oltp-emul test.
  • gbak backup could hung when Ctrl-C pressed.
  • Corrections for "Windows instance conflict" handling
  • Fixed AV and other issues found by FBT test bugs.core_6353.
  • #7239 : Connect using XNET protocol shows different exception if DB is in shutdown state (comparing to INET)
  • #7256 : Inconsistent conversion of non-TEXT blobs in BLOB_APPEND
  • #7271 : Sporadic crash on
  • 7276 : Firebird 4 literal containing crashes server
  • Fixed stack overflow reason as shown by failed fbt test for core-4653.
  • Avoid too early kill of probably working (not hung) thread.
  • #7314 : Multitreaded activating indices restarts server process
  • Better error handling at transaction start.
  • #7379: BLOB_APPEND with existing blob accepts malformed string, and #7380: Aliased blob variable with less restrictions makes text blob accept malformed string through BLOB_APPEND
  • #7385: Broken lock of statements cache during multithreaded index activation


  • Maintain Windows build system
    - Fixed build with MSVC 17.1
    - Don't generate browse info by MSVC build. It saves 15-20% of build time on Windows.
    - Use correct Windows SDK version
  • Adjust debug messages to avoid false failures of some fbt tests.
  • #7161 : Update zlib to 1.2.12
  • Update ISQL's "HELP SET" command.
  • Restore correct order of trace events when attempt to attach failed.
  • Change names of global shared memory areas (currently trace and mappings) to avoid conflicts with FB4.
  • #7232 : Unify init\check methods for shared memory and avoid duplicating of type/version usage in code.

New features and improvements

  • #7212 : Parallel backup, restore and sweep.  Also including:
    - optimize concurrent bulk inserts to not fight for the same data page,
    - optimize concurrent bulk inserts of blobs,
    - DIRECT_IO for restore.
  • #7213 : Use Windows private namespace for kernel objects used in server-to-server IPC.
  • #6983, #7216 : New built-in function BLOB_APPEND
  • #6730 : Trace: provide ability to see STATEMENT RESTART events (or their count).
  • #7208 : Trace: provide performance statistics for DDL statements.
  • #7218 : Let isql show per-table run-time statistics.
  • #7186 : FB4 Nbackup RDB$BACKUP_HISTORY issue
  • #7259 : Remove TcpLoopbackFastPath and use of SIO_LOOPBACK_FAST_PATH
  • Validation of condition indices.
  • #7339 : Hash table based on lock-free list for page cache.

Vladyslav Khorsun
Dnetpropetrovsk, Ukraine