February to May 2020

February 2020

master

  • A bit better solution for CORE-6110: 64-bit transaction IDs are not stored properly in status vector
  • Correct usage of Arg::Int64
  • Complete fix for bug CORE-6233 : Wrong dependencies of stored function on view after backup and restore.
  • New feature CORE-4933 : Add better transaction control to isql
  • Fixed bug CORE-6254 : AV in engine when using SET TRANSACTION and ON TRANSACTION START trigger uses EXECUTE STATEMENT against current transaction
  • Fixed bug CORE-6252 : UNIQUE CONSTRAINT violation
  • Improvement CORE-6095 : Extend trace record for COMMIT/ROLLBACK RETAINING to allow chaining of transaction ids 
  • Fixed bug CORE-6253 : Crash via locked fb_lock file

B3_0_Release

  • Backport new feature CORE-4933 : Add better transaction control to isql 
  • Fixed bug CORE-6254 : AV in engine when using SET TRANSACTION and ON TRANSACTION START trigger uses EXECUTE STATEMENT against current transaction
  • Fixed bug CORE-6252 : UNIQUE CONSTRAINT violation
  • Fixed bug CORE-6253 : Crash via locked fb_lock file

March

master

  • Allow MP compilation for extern projects. MSVC15 only for now.
  • Fixed bug CORE-6224 : [AV] Re-destruction of the rem_port object
  • Make CLOOP generate correct VERSION constants for all kind of outputs.
  • Fixed bug reported privately: request of expression index could run outside of main request's snapshot.
  • Merge branch 'query_restarts_2'
  • Optimization : use overlapped IO for database files on Windows. Cleanup corresponding (never used) code from IB6.

B3_0_Release

  • Fixed bug CORE-6224 : [AV] Re-destruction of the rem_port object
  • Make CLOOP generate correct VERSION constants for all kind of outputs.
  • Correct my old fix for CORE-5470 - use converters in correct order query_restarts_2
  • Fixed regression found by Nikolay: Let restart request immediately when update conflict happens at positioned UPDATE\DELETE
  • Introduced generic way to add some specific markers for primary BLR verbs using new blr_marks code.
  • Restore how DebugInfo was generated.
  • Preserve locks when required and there is no next savepoint (for ex. no transaction-level savepoint)
  • Update documentation.

April

master

  • Some additional checks and documentation for new MAKE_DBKEY function.
  • Windows build for ExtAuth sample plugin and its keygen
  • Add pre-built binaries of ExtAuth plugin (\examples\prebuilt\plugins) and its keygen (\examples\prebuilt\bin).
  • Avoid creating folders for the build logs of misc libraries
  • Update documentation (CORE-4933)

May

master

  •  Renamed exauth sample plugins\app.
  • Windows build for dbcrypt sample plugins\app.
  • Fixed dbcrypt sample app to compile on Windows.
  • make_examples.bat updated.
  • Update documentation.
  • Reimplemented TraceLog as ring-buffer in shared memory
  • Added simple ITimer implementation, independent of system time changes. Use common template for Attachment::IdleTimer.
  • Don't start session idle timer if there is executing statement.
  • Show in monitoring tables real expiration time of timeout timers, independent of system time change after timer start.
  • Avoid races when trace plugin is [un]loaded and firebird process is stopped. Fixed bug CORE-5838 : Rotated Trace files locked by engine
  • Refactored TimerImpl to use std::function as Adriano suggested.
  • Reimplement trace configurations storage. This should fix CORE-6296 : Many connections results in poor performance
  • Fixed 5 seconds delay when user application exits not calling fb_shutdown
  • Ensure timer handler can't run after the stop() is executed.
  • Fixed race with idle timer handler and ~PluginLogWriter().
  • Make Idle timer handler to not blocks when run in parallel with write() anymore.
  • Use full file name for touch timer
  • Fixed bug CORE-6319 : NBACKUP locks db file on error
  • Shared objects (lock manager, event manager and replication manager) should be deleted under g_mutex protection. This should fix
    bugchecks happens occasionally when run test for CORE-5034. Also, don't acquire local GlobalObjectHolder::m_mutex when it is not
    necessary.
Vladyslav Khorsun
Dnetpropetrovsk, Ukraine