Skip to content

Latest commit

 

History

History
1871 lines (1267 loc) · 107 KB

CHANGELOG.md

File metadata and controls

1871 lines (1267 loc) · 107 KB

v4.0.4

Improvements

  • #7818: Extend RDB$GET_CONTEXT('SYSTEM', '***') with other info from MON$ATTACHMENTS
    Contributor(s): Vlad Khorsun

  • #7755: Update Windows distribution with new zlib version 1.3 (released 2023-08-18)
    Contributor(s): Vlad Khorsun

Bugfixes

  • #7817: Memory leak is possible for UDF array arguments
    Contributor(s): Dmitry Yemanov

  • #7812: Service backup does not work in multiple engines configuration
    Contributor(s): Alexander Peshkov

  • #7779: Firebird 4.0.3 is constantly crashing with the same symptoms (fbclient.dll) Contributor(s): Vlad Khorsun

  • #7772: Blob corruption in FB4.0.3 (embedded)
    Contributor(s): Vlad Khorsun

  • #7770: Restore takes 25% more time vs 4.0.0
    Contributor(s): Vlad Khorsun

  • #7766: Firebird 4 Windows Installer omits DLLs during custom installation mode
    Contributor(s): Paul Reeves

  • #7762: Crash on "Operating system call pthread_mutex_destroy failed. Error code 16" in log
    Contributor(s): Alexander Peshkov

  • #7761: Regression when displaying line number of errors in ISQL scripts
    Contributor(s): Adriano dos Santos Fernandes

  • #7759: Routine calling overhead increased by factor 6 vs Firebird 4.0.0
    Contributor(s): Adriano dos Santos Fernandes

  • #7747: Fix an issue where the garbage collection in indexes and blobs is not performed in VIO_backout
    Contributor(s): Ilya Eremin

  • #7745: Error restoring database which has system domains in user table with BLOBs using embedded connection
    Contributor(s): Alexander Peshkov

  • #7738: Crash on multiple connections/disconnections
    Contributor(s): Alexander Peshkov

  • #7737: Fix cases where the precedence relationship between a record page and a blob page is not set
    Contributor(s): Ilya Eremin

  • #7731: Display length of TIMESTAMP WITH TIME ZONE is wrong in dialect 1
    Contributor(s): Alexander Peshkov

  • #7730: Server ignores the size of VARCHAR when performing SET BIND ... TO VARCHAR(N)
    Contributor(s): Alexander Peshkov

  • #7729: SET BIND OF TS WITH TZ TO VARCHAR(128) uses the date format of dialect 1
    Contributor(s): Alexander Peshkov

  • #7727: Index for integer column cannot be used when INT128/DECFLOAT value is being searched
    Contributor(s): Dmitry Yemanov

  • #7723: Wrong error message on login if the user doesn't exist and WireCrypt is disabled
    Contributor(s): Alexander Peshkov

  • #7713: FOR SELECT statement can not see any changes made inside the DO block
    Contributor(s): Vlad Khorsun

  • #7691: WITH CALLER PRIVILEGES has no effect in triggers
    Contributor(s): Alexander Peshkov

  • #7480: Firebird server stops accepting new connections after some time
    Contributor(s): Alexander Peshkov

v4.0.3

Improvements

  • #7542: Compiler warnings raise when build cloop-generated Firebird.pas in RAD Studio 11.3
    Contributor(s): Vlad Khorsun

  • #7539: RDB$GET/SET_CONTEXT(): enclosing in apostrophes or double quotes of a missed namespace/variable will made output more readable
    Contributor(s): Vlad Khorsun

  • #7494: Avoid non necessary index reads
    Contributor(s): Vlad Khorsun

  • #7468: Add switch to control in guardian timeout before killing firebird server process
    Contributor(s): Alex Peshkoff

  • #7437: Updated zlib to version 1.2.13 (released 2022-10-13)
    Contributor(s): Vlad Khorsun

  • #7425: Add REPLICA MODE to the output of the isql SHOW DATABASE command
    Contributor(s): Dmitry Yemanov

  • #7418: Improve reliability of plugin manager
    Contributor(s): Alex Peshkoff

  • #7294: Allow FB-known macros in replication.conf
    Contributor(s): Dmitry Yemanov

  • #7259: Remove TcpLoopbackFastPath and use of SIO_LOOPBACK_FAST_PATH
    Contributor(s): Vlad Khorsun

  • #7186: Nbackup RDB$BACKUP_HISTORY cleanup
    Contributor(s): Vlad Khorsun

Bugfixes

  • #7683: rdb$time_zone_util.transitions returns an infinite result set
    Contributor(s): Adriano dos Santos Fernandes

  • #7670: Cursor name can duplicate parameter and variable names in procedures and functions
    Contributor(s): Adriano dos Santos Fernandes

  • #7665: Wrong result ordering in LEFT JOIN query
    Contributor(s): Dmitry Yemanov

  • #7664: DROP TABLE executed for a table with big records may lead to "wrong page type" or "end of file" error
    Contributor(s): Ilya Eremin

  • #7662: Peformance issues in prepare_update()
    Contributor(s): Ilya Eremin

  • #7661: FB CS rejects new connections
    Contributor(s): Vlad Khorsun

  • #7651: Unable to find savepoint in insert with nested query and returning clause in FB4
    Contributor(s): Dmitry Yemanov

  • #7638: OVERRIDING USER VALUE should be allowed for GENERATED ALWAYS AS IDENTITY
    Contributor(s): Adriano dos Santos Fernandes

  • #7627: The size of the database with big records becomes bigger after backup/restore
    Contributor(s): Ilya Eremin

  • #7626: Segfault when new attachment is done to shutting down database
    Contributor(s): Alex Peshkoff

  • #7611: Can't backup/restore database from v3 to v4 with SEC$USER_NAME field longer than 10 characters
    Contributor(s): Adriano dos Santos Fernandes

  • #7610: Uninitialized/random value assigned to RDB$ROLES.RDB$SYSTEM PRIVILEGES when restoring from FB3 backup
    Contributor(s): Adriano dos Santos Fernandes

  • #7605: Disallow replication of RDB$BACKUP_HISTORY
    Contributor(s): Dmitry Yemanov

  • #7604: PSQL functions do not convert the output BLOB to the connection character set
    Contributor(s): Adriano dos Santos Fernandes

  • #7603: BIN_SHR on INT128 does not apply sign extension
    Contributor(s): Alex Peshkoff

  • #7599: Conversion of text with '\0' to DECFLOAT without errors
    Contributor(s): Alex Peshkoff

  • #7591: RELEASE SAVEPOINT ONLY works incorrectly
    Contributor(s): Dmitry Yemanov

  • #7582: Missing isc_info_end in Firebird.pas
    Contributor(s): Alex Peshkoff

  • #7579: Cannot nbackup a Firebird 3.0 database in Firebird 4.0 service with engine12 setup in Providers
    Contributor(s): Alex Peshkoff

  • #7556: FB Classic can hang attempting to attach DB while it is starting to encrypt/decrypt
    Contributor(s): Alex Peshkoff

  • #7555: Invalid configuration for random fresh created database may be used after drop of another one with alias in databases.conf
    Contributor(s): Alex Peshkoff

  • #7548: SET BIND OF TIMESTAMP WITH TIME ZONE TO CHAR is not working with UTF8 connection charset
    Contributor(s): Adriano dos Santos Fernandes

  • #7537: Wrong name in error message when unknown namespace is passed into RDB$SET_CONTEXT
    Contributor(s): Vlad Khorsun

  • #7535: High CPU usage connect to Firebird 3 database using Firebird 4 Classic and SuperClassic service
    Contributor(s): Vlad Khorsun

  • #7517: Successful compiling of procedure with wrong PLAN(s) used by some of its statement(s)
    Contributor(s): Dmitry Yemanov

  • #7514: Segfault when detaching after deleting shadow on Classic
    Contributor(s): Alex Peshkoff

  • #7510: Firebird regularly crashes soon after unload of udr_engine plugin
    Contributor(s): Alex Peshkoff

  • #7501: Precision of a standalone unit may differ from a packaged one in SQL dialect 1
    Contributor(s): Vlad Khorsun

  • #7499: Problem with restore (error: index cannot be used in the specified plan)
    Contributor(s): Vlad Khorsun

  • #7488: Invalid real to string cast
    Contributor(s): Artyom Abakumov, Alex Peshkoff

  • #7484: External engine SYSTEM not found
    Contributor(s): Adriano dos Santos Fernandes

  • #7482: Result of blob_append(null, null) (literal '<null>') is not shown
    Contributor(s): Vlad Khorsun, Adriano dos Santos Fernandes

  • #7473: Client application crash when processing callback requests from server during attachDatabase
    Contributor(s): Alex Peshkoff

  • #7472: Window functions may lead to crash interacting with others exceptions
    Contributor(s): Adriano dos Santos Fernandes

  • #7467: Simple SQL crashes Firebird: select cast(rdb$db_key as integer) from rdb$database
    Contributor(s): Alex Peshkoff

  • #7465: Restore success illegally reported when gbak was unable to activate all indices
    Contributor(s): Alex Peshkoff

  • #7456: Impossible drop function in package with name of PSQL-function
    Contributor(s): Adriano dos Santos Fernandes

  • #7446: Attempt to use data in destroyed transaction pool
    Contributor(s): Alex Peshkoff

  • #7444: isql crashes while executing test from QA suite
    Contributor(s): Alex Peshkoff

  • #7415: DbCrypt/KeyHolder plugins key changing issues on running server
    Contributor(s): Alexey Mochalov

  • #7402: Server crashes on startup error
    Contributor(s): Alex Peshkoff

  • #7398: Worst plan sort created to execute an indexed tables
    Contributor(s): Dmitry Yemanov

  • #7393: Access violation after double fault in attachDatabase()
    Contributor(s): Alex Peshkoff

  • #7387: Unreliable replication behaviour in Linux Classic
    Contributor(s): Dmitry Yemanov

  • #7380: Aliased blob variable with less restrictions makes text blob accept malformed string through BLOB_APPEND
    Contributor(s): Vlad Khorsun

  • #7379: BLOB_APPEND with existing blob accepts malformed string
    Contributor(s): Vlad Khorsun, Adriano dos Santos Fernandes

  • #7371: Various errors (fatal lock manager error, pthread_mutex_destroy failed) caused by races when opening/closing database
    Contributor(s): Alex Peshkoff

  • #7370: Segfault under OOM conditions
    Contributor(s): Alex Peshkoff

  • #7369: Build fails against re2 20220601
    Contributor(s): Adriano dos Santos Fernandes

  • #7365: Client side aliases do not work in databases.conf
    Contributor(s): Alex Peshkoff

  • #7361: Broken compacting of trace config storage
    Contributor(s): Alex Peshkoff

  • #7359: Querying to list the running trace sessions can fail if two service API calls was done before it for a short time (Linux specifics)
    Contributor(s): Alex Peshkoff

  • #7357: Lock manager error when connect a Firebird 3.0 database more than once using SuperClassic Firebird 4.0 service
    Contributor(s): Alex Peshkoff

  • #7349: Contradictory licensing/distribution statements in several charset-support files
    Contributor(s): Mark Rotteveel

  • #7314: Multitreaded activating indices restarts server process
    Contributor(s): Vlad Khorsun

  • #7298: Unreliable info result parsing
    Contributor(s): Alex Peshkoff

  • #7296: During shutdown op_disconnect may be sent to invalid handle
    Contributor(s): Alex Peshkoff

  • #7295: Unexpected message 'Error reading data from the connection' when fbtracemgr is closed using Ctrl-C
    Contributor(s): Alex Peshkoff

  • #7283: Suspicious error message during install
    Contributor(s): Alex Peshkoff

  • #7276: Firebird 4 literal with CONTAINING crashes server
    Contributor(s): Vlad Khorsun

  • #7271: Sporadic server crash
    Contributor(s): Vlad Khorsun

  • #7262: Repeated op_batch_create leaks the batch
    Contributor(s): Alex Peshkoff

  • #7256: Inconsistent conversion of non-TEXT blobs in BLOB_APPEND
    Contributor(s): Vlad Khorsun

  • #7255: READ COMMITTED READ CONSISTENCY mode is broken in Classic / SuperClassic on Linux
    Contributor(s): Alex Peshkoff

  • #7233: Slow database restore when Classic server mode is used
    Contributor(s): Ilya Eremin

  • #7241: MacOS installer - firebird user is not created correctly if group already exists
    Contributor(s): Jonathan Frutos

  • #7239: Connect using XNET protocol shows different exception (comparing to INET) if database is in the shutdown state
    Contributor(s): Vlad Khorsun

  • #6941: Dummy (always true) conditions may change the join order
    Contributor(s): Dmitry Yemanov

  • #4729: GRANT and REVOKE UPDATE (field)
    Contributor(s): Alex Peshkoff

v4.0.2

New features

Improvements

  • #7208: Trace: provide performance statistics for DDL statement
    Contributor(s): Vlad Khorsun

  • #7194: Make it possible to avoid fbclient dependency in Pascal programs using firebird.pas
    Contributor(s): Alex Peshkoff

  • #7168: Ignore missing UDR libraries during restore
    Contributor(s): Adriano dos Santos Fernandes

  • #7161: Update zlib to version 1.2.12
    Contributor(s): Vlad Khorsun

  • #7093: Improve indexed lookup speed of strings when the last keys characters are part of collated contractions
    Contributor(s): Adriano dos Santos Fernandes

  • #7092: Improve performance of CURRENT_TIME
    Contributor(s): Adriano dos Santos Fernandes

  • #7042: ON DISCONNECT triggers are not executed during forced attachment shutdown
    Contributor(s): Ilya Eremin

  • #7041: Firebird port for Apple M1 architecture
    Contributor(s): Jonathan Frutos, Alex Peshkoff, Adriano dos Santos Fernandes

  • #7038: Improve performance of STARTING WITH with insensitive collations
    Contributor(s): Adriano dos Santos Fernandes

  • #6730: Trace: provide ability to see STATEMENT RESTART events (or their count)
    Contributor(s): Vlad Khorsun

Bugfixes

  • #7243: Some UNICODE characters can lead to wrong CONTAINING evaluation when lower/upper uses different number of bytes in its encoding
    Contributor(s): Adriano dos Santos Fernandes

  • #7229: ALTER COLUMN DROP IDENTITY does not reset generator name in metadata cache
    Contributor(s): Adriano dos Santos Fernandes

  • #7222: Dependencies of packaged functions are not tracked
    Contributor(s): Adriano dos Santos Fernandes

  • #7217: It's not allowed to execute DROP PACKAGE BODY for a package with a procedure even if a user has DROP ANY PACKAGE privilege
    Contributor(s): Ilya Eremin

  • #7204: Segfault in GBAK when restoring a broken backup file over the wire
    Contributor(s): Alex Peshkoff

  • #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
    Contributor(s): Adriano dos Santos Fernandes

  • #7200: DROP DATABASE leads to hang if it is issued while database encrypting/decrypting is in progress
    Contributor(s): Alex Peshkoff

  • #7199: Various errors (strange messages in firebird.log, segfaults) with high rate of attach/detach database operations
    Contributor(s): Alex Peshkoff

  • #7197: Segfault in Linux CS after successful detach from database
    Contributor(s): Alex Peshkoff

  • #7194: GSTAT fails but returns 0 as error code if incorrect databases.conf is used
    Contributor(s): Alexey Mochalov

  • #7188: Memory leak in fbclient when a multi-database transaction is used
    Contributor(s): Alex Peshkoff

  • #7184: GBAK output is not being flushed to disk
    Contributor(s): Alex Peshkoff

  • #7179: Wrong error message - "string right truncation. expected length 30, actual 30."
    Contributor(s): Adriano dos Santos Fernandes

  • #7178: DEFAULTed grants to PUBLIC must act as DEFAULTed to every user
    Contributor(s): Roman Simakov

  • #7176: Incorrect error "Invalid token. Malformed string." with UNION + blob + non-UTF8 varchar
    Contributor(s): Adriano dos Santos Fernandes

  • #7167: Incorrect transliteration of field names in constraint violation errors
    Contributor(s): Adriano dos Santos Fernandes

  • #7160: Missing checkout in the trace manager when performing user mapping may cause server hang
    Contributor(s): Alex Peshkoff

  • #7150: Replication not restarting after network failure
    Contributor(s): Dmitry Yemanov

  • #7147: Problems with use of big timeout (or no timeout at all) in the trace service
    Contributor(s): Alex Peshkoff

  • #7141: Services manager breaks long lines into 1023 bytes portions when using isc_info_svc_line in Service::query()
    Contributor(s): Adriano dos Santos Fernandes

  • #7140: Wrong select result in case of special sort character
    Contributor(s): Adriano dos Santos Fernandes

  • #7139: With multiple trace sessions user may receive trace events related to engine's requests
    Contributor(s): Alex Peshkoff

  • #7138: Problems accessing FB4 database, copied from another host
    Contributor(s): Alex Peshkoff

  • #7135: Firebird engine randomly fails when delivering mapping clear signal to other processes
    Contributor(s): Alex Peshkoff

  • #7134: Database page errors directly after GBAK, dissappearing after some calls of GFIX
    Contributor(s): Vlad Khorsun

  • #7129: Cannot alter SQL SECURITY on package
    Contributor(s): Alexey Mochalov

  • #7128: Incorrect error message with isc_sql_interprete()
    Contributor(s): Vlad Khorsun

  • #7124: Inconsistent RDB$USER_PRIVILEGES after dropping identity
    Contributor(s): Adriano dos Santos Fernandes

  • #7123: ISQL does not extract INCREMENT BY for IDENTITY column
    Contributor(s): Adriano dos Santos Fernandes

  • #7122: Invalid state of mapping cache after replacement of database
    Contributor(s): Alex Peshkoff

  • #7121: Mapping error when server tries to use mapping rules from database in full shutdown mode
    Contributor(s): Alex Peshkoff

  • #7119: Database statistics service could not find existing table(s)
    Contributor(s): Vlad Khorsun

  • #7118: Chained JOIN .. USING across the same column names may be optimized badly
    Contributor(s): Dmitry Yemanov

  • #7113: Wrong path in Object Pascal's readme.md
    Contributor(s): Alex Peshkoff

  • #7112: Avoid unload of plugins in MacOS due to problematic reload of them
    Contributor(s): Adriano dos Santos Fernandes

  • #7108: Firebird does not find an record when adding a foreign key
    Contributor(s): Adriano dos Santos Fernandes

  • #7106: Wrong detection of must-be-delimited user names
    Contributor(s): Alex Peshkoff

  • #7103: FB service hangs after several DELETE FROM MON$STATEMENTS being issued in order to stop ES/EDS which waits record for updating
    Contributor(s): Vlad Khorsun

  • #7099: Incomplete op_batch_cs response with TAG_MULTIERROR
    Contributor(s): Alex Peshkoff

  • #7096: Client install on Windows is missing some files
    Contributor(s): Paul Reeves

  • #7094: Incorrect indexed lookup of strings when the last keys characters are part of collated contractions and there is multi-segment insensitive descending index
    Contributor(s): Adriano dos Santos Fernandes

  • #7090: Performance degradation with CURRENT_DATE, LOCALTIME and LOCALTIMESTAMP
    Contributor(s): Adriano dos Santos Fernandes

  • #7088: MacOS UDR and Legacy_UserManager plugins not working due to not exported entry point
    Contributor(s): Adriano dos Santos Fernandes

  • #7084: Creating unique constraints on MacOS fails on larger tables
    Contributor(s): Adriano dos Santos Fernandes

  • #7080: Executing batch crashes the server
    Contributor(s): Alex Peshkoff

  • #6947: Query to MON$ tables does not return data when database encryption/decryption is in progress
    Contributor(s): Alex Peshkoff

  • #4085: RDB$INDICES information stored inconsistently after a CREATE INDEX
    Contributor(s): Dmitry Yemanov

  • #3357: Bad execution plan if some stream depends on multiple streams via a function
    Contributor(s): Dmitry Yemanov

v4.0.1

New features

  • #6910: Add way to retrieve statement BLR with Statement::getInfo and ISQL's SET EXEC_PATH_DISPLAY BLR
    Contributor(s): Adriano dos Santos Fernandes

Improvements

  • #6959: Add IBatch::getInfo() method to the API
    Contributor(s): Alex Peshkoff

  • #6954: fb_info_protocol_version support
    Contributor(s): Alex Peshkoff

  • #6929: Add support of PKCS v.1.5 padding to RSA functions, needed for backward compatibility with old systems
    Contributor(s): Alex Peshkoff

  • #6915: Allow attribute DISABLE-COMPRESSIONS in UNICODE collations
    Contributor(s): Adriano dos Santos Fernandes

  • #6903: Make it possible to create ICU-based collations with locales keywords
    Contributor(s): tkeinz, Adriano dos Santos Fernandes

  • #6872: Faster indexed STARTING WITH execution with UNICODE collations
    Contributor(s): Adriano dos Santos Fernandes

  • #6810: Use precise limit of salt length when signing messages and verifying the sign
    Contributor(s): Alex Peshkoff

  • #6809: Integer hex-literal support for INT128
    Contributor(s): Alex Peshkoff

Bugfixes

  • #7070: Error "BLOB is not found" while replication converts INSERT into UPDATE for a conflicting record
    Contributor(s): Dmitry Yemanov

  • #7068: Errors in the ChaCha plugin are displayed incorrectly
    Contributor(s): Alex Peshkoff

  • #7067: Deadlock when using not initialized security database
    Contributor(s): Alex Peshkoff

  • #7066: Server may send incorrect specific data to client when establishing encrypted connection
    Contributor(s): Alex Peshkoff

  • #7065: Connection hangs after delivery of 256GB of data
    Contributor(s): Alex Peshkoff

  • #7064: Linear regression functions aren't implemented correctly
    Contributor(s): Adriano dos Santos Fernandes

  • #7062: Creation of expression index does not release its statement correctly
    Contributor(s): Adriano dos Santos Fernandes

  • #7060: Deadlock when execute test for CORE-4337
    Contributor(s): Alex Peshkoff

  • #7057: Client-side positioned updates work wrongly with scrollable cursors
    Contributor(s): Dmitry Yemanov

  • #7056: Fetching from a scrollable cursor may overwrite user-specified buffer and corrupt memory
    Contributor(s): Dmitry Yemanov

  • #7052: Races between transactions on the primary side may cause update conflicts while applying journals to the replica
    Contributor(s): Dmitry Yemanov

  • #7048: Incorrect releasing of user savepoint (older savepoints become inaccessible)
    Contributor(s): Dmitry Yemanov

  • #7043: Wrong message when user has no access to /tmp/firebird
    Contributor(s): Alex Peshkoff

  • #7037: Build problem when using both --with-builtin-tommath and --with-builtin-tomcrypt
    Contributor(s): Adriano dos Santos Fernandes

  • #7034: Server crashes while fetching from a scrollable cursor in PSQL
    Contributor(s): Dmitry Yemanov

  • #7033: Replicator is missing sanity checks for user-supplied blocks
    Contributor(s): Dmitry Yemanov

  • #7018: Problems with windows frames
    Contributor(s): Adriano dos Santos Fernandes

  • #7015: Replication applier code may crash if the specified block contains no savepoint operations
    Contributor(s): Dmitry Yemanov

  • #6998: Problems with access to RDB$CONFIG table for non-privileged user when he has grant on execution of SP which has necessary access rights (created by SYSDBA with SQL DEFINER clause)
    Contributor(s): Roman Simakov

  • #6995: "String truncation error" is raised while restoring the database from a v2.5 backup
    Contributor(s): Dmitry Yemanov

  • #6989: Invalid message in replication.log (and possibly crash in the case of synchronous replication) when the target DB has no "replica" flag set
    Contributor(s): Dmitry Yemanov

  • #6985: Application could hang when using new Batch API with blobs over XNET
    Contributor(s): Vlad Khorsun

  • #6979: Windows x64 server installer installs an incomplete x86 client Contributor(s): Paul Reeves

  • #6978: Firebird 4 fails to build on big endian platforms
    Contributor(s): Alex Peshkoff

  • #6976: Lack of proper clean up after failure to initialize shared memory
    Contributor(s): Vlad Khorsun

  • #6975: Crash or hang while shutting down the replica database if segments are being applied
    Contributor(s): Dmitry Yemanov

  • #6968: On Windows, engine may hang when works with corrupted database and read after the end of file
    Contributor(s): Vlad Khorsun

  • #6966: Status vector for ES(<EMPTY_STRING>) is unstable if another execute block with correct statement was executed before. Affects only LINUX builds in Classic mode
    Contributor(s): Alex Peshkoff

  • #6963: The REFERENCES permission does not work
    Contributor(s): Alex Peshkoff

  • #6955: fb_info_creation_timestamp_tz returns a corrupted buffer
    Contributor(s): Vlad Khorsun

  • #6945: Segfault in the batch interface when gbak restores a database with many blobs over the wire
    Contributor(s): Alex Peshkoff

  • #6943: Windows client install is missing some DLLs Contributor(s): Paul Reeves

  • #6935: SQL SECURITY DEFINER has inconsistent behaviour if the object owner is non-privileged
    Contributor(s): Dmitry Yemanov

  • #6935: SQL SECURITY DEFINER does not affect the ownership of created DDL objects
    Contributor(s): Dmitry Yemanov

  • #6930: Segfault when calling cryptographic functions
    Contributor(s): Alex Peshkoff

  • #6917: Firebird 4 installer asks for SYSDBA password when doing client installation Contributor(s): Paul Reeves

  • #6913: Buffer overflows in getInfo APIs
    Contributor(s): Adriano dos Santos Fernandes

  • #6909: Some updates may crash Firebird server on the replica side
    Contributor(s): Dmitry Yemanov

  • #6907: Failed DDL commands can be replicated
    Contributor(s): Dmitry Yemanov

  • #6900: IBatch::add() method fails silently when a memory limit is exceeded
    Contributor(s): Alex Peshkoff

  • #6893: Problem with replication of BLOB segments longer than 32KB
    Contributor(s): Dmitry Yemanov

  • #6887: Invalid SIMILAR TO patterns may lead memory read beyond string limits
    Contributor(s): Adriano dos Santos Fernandes

  • #6886: Differerent interfaces behaviour depending upon source of interface
    Contributor(s): Alex Peshkoff

  • #6887: Significant performance regression of SIMILAR TO and SUBSTRING(SIMILAR) when pattern is taken from a variable
    Contributor(s): Adriano dos Santos Fernandes

  • #6874: Literal 65536 (interpreted as int) cannot be multiplied by itself w/o cast if result is more than 2^63-1
    Contributor(s): Alex Peshkoff

  • #6860: Create user statement fails with SQLSTATE = HY000 when using DataTypeCompatibility
    Contributor(s): Alex Peshkoff

  • #6856: Permission error after replication of DDL commands
    Contributor(s): Dmitry Yemanov

  • #6853: Asynchronous replication leaks file handles
    Contributor(s): Dmitry Yemanov

  • #6850: Database-level and DDL triggers are executed at the replica side
    Contributor(s): Dmitry Yemanov

  • #6849: Conflicting INSERT propagated into a read-write replica may cause duplicate records to appear (and PK/UK violation to happen)
    Contributor(s): Dmitry Yemanov

  • #6848: Generator values may not replicate after commit
    Contributor(s): Dmitry Yemanov

  • #6845: Result type of AVG over BIGINT column results in type INT128
    Contributor(s): Alex Peshkoff

  • #6838: Deleting multiple rows from a view with triggers may cause triggers to fire just once
    Contributor(s): Dmitry Yemanov

  • #6832: Segfault when using COMMIT RETAINING with Global Temporary Tables
    Contributor(s): Alex Peshkoff

  • #6801: Error recompiling a package with some combination of nested functions
    Contributor(s): Adriano dos Santos Fernandes

v4.0 Release (01-Jun-2021)

Improvements

Bugfixes

  • #6816: Illegal output length in base64/hex encode/decode functions
    Contributor(s): Alex Peshkoff

  • #6812: BASE64_ENCODE and HEX_ENCODE can exceed maximum widths for VARCHAR
    Contributor(s): Alex Peshkoff

  • #6808: Segfault in encrypt/decrypt functions when their first argument is NULL
    Contributor(s): Alex Peshkoff

  • #6805: RDB$TYPES has incorrect entries for RDB$TYPE 28 and 29 in RDB$TYPE_NAME column
    Contributor(s): Alex Peshkoff

  • #6804: Assertion in tomcrypt when key length for RC4 is too small
    Contributor(s): Alex Peshkoff

  • #6802: When the statement timeout is set, it causes the lock manager to delay reporting deadlocks until timeout is expired
    Contributor(s): Vlad Khorsun

  • #6800: Client config DefaultTimeZone is not passed to server when isc_dpb_session_time_zone is not set
    Contributor(s): Adriano dos Santos Fernandes

  • #6797: Functions DECRYPT and RSA_DECRYPT return VARCHAR CHARACTER SET NONE instead of VARBINARY (VARCHAR CHARACTER SET OCTETS)
    Contributor(s): Alex Peshkoff

  • #6796: Buffer overflow when padding line with national characters causes ISQL to crash
    Contributor(s): Adriano dos Santos Fernandes

  • #6795: Replication gets stuck due to "Blob xxx.xx is not found for table xxx" error
    Contributor(s): Dmitry Yemanov

  • #6790: MON$ATTACHMENTS.MON$TIMESTAMP is incorrect when DefaultTimeZone is configured with time zone different from the server's default
    Contributor(s): Adriano dos Santos Fernandes

  • #6787: MON$ATTACHMENTS.MON$TIMESTAMP should use its session original time zone
    Contributor(s): Adriano dos Santos Fernandes

  • #6785: Problem when restoring the database on Firebird 4 RC1
    Contributor(s): Vlad Khorsun

  • #6782: Cannot get "records fetched" for selectable procedures in trace
    Contributor(s): Vlad Khorsun

  • #6781: Crashing (due to UDF exception) process hangs
    Contributor(s): Vlad Khorsun

  • #6780: firebird.msg is missing in Firebird Android builds
    Contributor(s): Alex Peshkoff

  • #6778: Inconsistent cursor-driven deletion
    Contributor(s): Dmitry Yemanov

  • #6777: AV when the engine shuts down and cancels an attachment waiting in the lock manager
    Contributor(s): Vlad Khorsun

  • #6768: Restore backup on RawDevice (error during "open O_CREAT" operation for file "/dev/sda1")
    Contributor(s): Alex Peshkoff

  • #6766: Replication plugin can crash engine returning nullptr from startTransaction() method
    Contributor(s): Dmitry Yemanov

  • #6761: Hash join cannot match records using some TIME ZONE / DECFLOAT keys
    Contributor(s): Dmitry Yemanov

  • #6759: Results of concatenation with blob has no info about collation of source columns (which are declared with such info)
    Contributor(s): Vlad Khorsun

  • #6758: COMPUTED BY column looses charset and collate of source field when is either of type BLOB or VARCHAR casted to BLOB
    Contributor(s): Vlad Khorsun

  • #6756: Error "no current record for fetch operation" when sorting by a international string
    Contributor(s): Dmitry Yemanov

  • #6754: Connect to database that contains broken pages can lead to FB crash
    Contributor(s): Alex Peshkoff

  • #6753: AV in the engine when StatementTimeout is active for user statement and some internal DSQL statement was executed as part of overall execution process
    Contributor(s): Vlad Khorsun

  • #6752: Segfaults in fbclient when receiving invalid / unexpected data from server
    Contributor(s): Alex Peshkoff

  • #6751: Various segfaults in fbclient
    Contributor(s): Alex Peshkoff

  • #6750: CAST of Infinity values to FLOAT doesn't work
    Contributor(s): Alex Peshkoff

  • #6749: Error "Invalid time zone (+08). Falling back to displacement" in firebird.log
    Contributor(s): Adriano dos Santos Fernandes

  • #6747: Wrong message when connecting to tiny trash database file
    Contributor(s): Alex Peshkoff

  • #6746: Regression: CREATE DATABASE fails with 'Token unknown' error when DB name is enclosed in double quotes and 'DEFAULT CHARACTER SET' is specified after DB name
    Contributor(s): Adriano dos Santos Fernandes

  • #6745: Protect included tomcrypt library from being overwritten by a system package
    Contributor(s): Alex Peshkoff

  • #6738: Segfault when GFIX requests for database page buffer more memory than available from OS
    Contributor(s): Alex Peshkoff

  • #6734: Provide same results for date arithmetics when date is changed by values near +/-max(bigint)
    Contributor(s): Alex Peshkoff

  • #6733: Attempt to create database with page_size >= 65536 makes DB with actual page size = 4KB or 8KB, but not 32KB as it should
    Contributor(s): Alex Peshkoff

  • #6731: Segfault when shutting down database which got encrypted by another process
    Contributor(s): Alex Peshkoff

  • #6729: Regression: GSTAT with switch -t executed via services fails with "found unknown switch" error
    Contributor(s): Alex Peshkoff

  • #6727: Synchronous replication to localhost hangs on disconnect
    Contributor(s): Dmitry Yemanov

  • #6724: Inconsistent translation "string->timestamp->string->timestamp" in Dialect 1
    Contributor(s): Adriano dos Santos Fernandes

  • #6719: User without ALTER ANY ROLE privilege can use COMMENT ON ROLE
    Contributor(s): Alex Peshkoff

  • #6718: Event delivery could be missed when local (XNET) protocol is used
    Contributor(s): Vlad Khorsun

  • #6717: FETCH ABSOLUTE and RELATIVE beyond bounds of cursor should always position immediately before-first or after-last
    Contributor(s): Dmitry Yemanov

  • #6716: FETCH RELATIVE has an off by one error for the first row
    Contributor(s): Dmitry Yemanov

  • #6710: COMMENT ON USER can only apply comment on user defined by the default user manager plugin
    Contributor(s): Alex Peshkoff

  • #6709: GBAK discards replica mode during backup/restore
    Contributor(s): Dmitry Yemanov

  • #6708: Rare race condition in Plugin Manager could lead to the server crash
    Contributor(s): Vlad Khorsun

  • #6700: Wire compression causes sporadic "Error reading data from the connection" errors
    Contributor(s): Alex Peshkoff

  • #6698: Comments before the first line of code are removed
    Contributor(s): Adriano dos Santos Fernandes

  • #6679: CLOOP envelopes are wrong regarding IStatus
    Contributor(s): Alex Peshkoff

  • #6265: Segfault when using expression index with complex expression
    Contributor(s): Vlad Khorsun

  • #5784: When 32-bit and 64-bit Firebird 3 servers run on a single Windows machine concurrently, Firebird services freeze several minutes after first disconnect
    Contributor(s): Vlad Khorsun

  • #3810: Wrong or missing IS NULL optimization (regression)
    Contributor(s): Vlad Khorsun

  • #3106: Many indexed reads in a compound index with NULLs
    Contributor(s): Vlad Khorsun

  • #2469: Stored procedure recursively called by calculated field fails after reconnect
    Contributor(s): Vlad Khorsun

v4.0 Release Candidate 1 (01-Feb-2021)

New features

  • CORE-5832: Add command to reset user session environment to its initial (default) state
    Contributor(s): Vlad Khorsun

  • CORE-3708: Add virtual table RDB$CONFIG that shows actual configuration settings
    Contributor(s): Vlad Khorsun

Improvements

  • CORE-6474: Report replica mode through isc_database_info, MON$DATABASE and SYSTEM context
    Contributor(s): Dmitry Yemanov

  • CORE-6469: Ability to trace session management commands (e.g. ALTER SESSION RESET)
    Contributor(s): Vlad Khorsun

  • CORE-6429: Timezone offset in timestamp/time literal, CAST, SET TIME ZONE and AT TIME ZONE should follow SQL standard syntax only
    Reference(s): /doc/sql.extensions/README.time_zone.md
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6413: Remove PIDFile/-pidfile directive/option from firebird Super(Server/Classic) systemd unit
    Contributor(s): Alex Peshkoff

  • CORE-6395: Allow usage of time zone displacement in config DefaultTimeZone
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6366: Check presence of tomcrypt & curses libraries before installing Firebird
    Contributor(s): Alex Peshkoff

  • CORE-6342: INT128 as explicit basic type for high precision numerics
    Reference(s): /doc/sql.extensions/README.data_types
    Contributor(s): Alex Peshkoff

  • CORE-6320: Replace Util methods to get interface pointer by legacy handle with plain functions
    Contributor(s): Alex Peshkoff

  • CORE-6308: Make it possible to update list of time zones (names and ids) without source code recompilation
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6300: Ability to retrieve next attachment id and next statement id
    Reference(s): /doc/README.monitoring_tables
    Contributor(s): Dmitry Yemanov

  • CORE-5085: Allow to fixup (nbackup) database via Services API
    Reference(s): /doc/README.services_extension
    Contributor(s): Alex Peshkoff

  • CORE-4841: Report explicit message about missing password in CREATE (OR ALTER) USER
    Contributor(s): Alex Peshkoff

  • CORE-2650: Improve sorting performance when long VARCHARs are involved
    Contributor(s): Dmitry Yemanov

Bugfixes

  • CORE-6475: Memory leak when running EXECUTE STATEMENT with named parameters
    Contributor(s): Vlad Khorsun

  • CORE-6472: Wrong byte order for UUIDs in gstat and monitoring output
    Contributor(s): Dmitriy Sibiryakov

  • CORE-6460: Incorrect query result when using named window
    Contributor(s): Vlad Khorsun

  • CORE-6453: EXECUTE STATEMENT fails on FB 4.x if containing time/timestamp with time zone parameters
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6450: Races in the security databases cache could lead to the server crash
    Contributor(s): Alex Peshkoff

  • CORE-6447: Unexpectedly different text of message for parameterized expression starting from second run
    Contributor(s): Vlad Khorsun

  • CORE-6441: Srp plugin keeps connection after database has been removed for ~10 seconds
    Contributor(s): Alex Peshkoff

  • CORE-6440: Expression indexes containing COALESCE inside cannot be matched by the optimizer after migration from v2.5 to v3.0
    Contributor(s): Dmitry Yemanov

  • CORE-6438: ISQL: bad headers when text columns has >= 80 characters
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6437: GFIX cannot set big value for page buffers
    Contributor(s): Vlad Khorsun

  • CORE-6433: Server could crash during a daily maintenance / set statistics index
    Contributor(s): Alex Peshkoff

  • CORE-6432: Possible buffer overflow in client library in Attachment::getInfo() call
    Contributor(s): Alex Peshkoff

  • CORE-6427: Whitespace as date separator causes conversion error
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6426: Assertion when the batch is executed without a BLOB field
    Contributor(s): Alex Peshkoff

  • CORE-6425: Exception in client library in IAttachment::createBatch()
    Contributor(s): Alex Peshkoff

  • CORE-6421: Parameter in offset expression in LAG, LEAD, NTH_VALUE window functions requires explicit cast to BIGINT or INTEGER
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6419: Truncation of strings to put in MON$ tables do not work correctly
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6415: Error "malformed string' is raised instead of "expected: N, actual: M" when UTF-8 charset is used and default value is longer than the column length
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6414: Error "expected length N, actual M" contains wrong value of M when UTF-8 charset is used in the field declaration
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6412: Firebird was freezing when trying to manage users via triggers
    Contributor(s): Alex Peshkoff

  • CORE-6408: RETURNING clause in the MERGE statement cannot reference column in aliased target table using qualified reference (alias.column) if DELETE action present
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6403: Some PSQL statements may lead to exceptions report wrong line/column
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6398: Error converting string with hex representation of INTEGER to SMALLINT
    Contributor(s): Alex Peshkoff

  • CORE-6397: Message length error with COALESCE and TIME/TIMESTAMP WITHOUT TIME ZONE and WITH TIME ZONE
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6389: Using binary string literal to assign to user-defined blob sub-types yield conversion error
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6387: Client process was aborting due to bugs inside the ChaCha plugin Contributor(s): Alex Peshkoff

  • CORE-6386: ALTER SEQUENCE RESTART WITH should not change the initial sequence START value
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6385: Wrong line and column information after IF statement
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6379: Bugcheck 179 (decompression overran buffer)
    Contributor(s): Vlad Khorsun

  • CORE-6377: Unable to restore database with tables using GENERATED ALWAYS AS IDENTITY columns
    Contributor(s): Alex Peshkoff

  • CORE-6376: IDENTITY column with explicit START WITH or INCREMENT BY starts with wrong value
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6357: LEAD() and LAG() do not allow to specify 3rd argument of INT128 datatype
    Contributor(s): Alex Peshkoff

  • CORE-6356: ROUND() does not allow second argument >=1 when its first argument is more than MAX_BIGINT / 10
    Contributor(s): Alex Peshkoff

  • CORE-6355: TRUNC() does not accept second argument = -128 (but shows it as required boundary in error message)
    Contributor(s): Alex Peshkoff

  • CORE-6353: INT128 data type has problems with some PSQL objects
    Contributor(s): Alex Peshkoff

  • CORE-6344: Invalid return type for functions with INT128 / Numeric(38) argument
    Contributor(s): Alex Peshkoff

  • CORE-6337: Sub-type information is lost when calculating arithmetic expressions
    Contributor(s): Alex Peshkoff

  • CORE-6336: Error "Implementation of text subtype not located" on attempt to use some collations defined in fbintl.conf
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6335: INSERT ... RETURNING does not require a SELECT privilege
    Contributor(s): Dmitry Yemanov

  • CORE-6328: FB4 Beta 2 may still be using the current date for TIME WITH TIME ZONE and extended wire protocol
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6325: NTILE/RANK/PERCENT_RANK may cause problems in big/complex statements
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6318: CAST('NOW' as TIME) raises a conversion error
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6316: Unable to specify new 32KB page size in CREATE DATABASE statement
    Contributor(s): Alex Peshkoff

  • CORE-6305: Android port build failure
    Contributor(s): Alex Peshkoff

  • CORE-6303: Error writing to TIMESTAMP/TIME WITH TIME ZONE array
    Contributor(s): Alex Peshkoff

  • CORE-6302: Error writing an array of NUMERIC(24,6) to the database
    Contributor(s): Alex Peshkoff

  • CORE-6084: CREATE SEQUENCE START WITH has wrong initial value
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6023: FB4 is unable to overwrite older ODS database
    Contributor(s): Alex Peshkoff

  • CORE-5838: Rotated trace files are locked by the engine
    Contributor(s): Vlad Khorsun

  • CORE-4985: A non-privileged user could implicitly count records in a restricted table
    Contributor(s): Dmitry Yemanov

  • CORE-2274: MERGE has a non-standard behaviour, accepts multiple matches
    Contributor(s): Vlad Khorsun

v4.0 Beta 2 (14-May-2020)

New features

Improvements

  • CORE-6286: Make usage of TIMESTAMP/TIME WITH TIME ZONE convenient for users when appropriate ICU library is not installed on the client side
    Reference(s): /doc/sql.extensions/README.time_zone.md, /doc/sql.extensions/README.set_bind.md
    Contributor(s): Alex Peshkoff

  • CORE-6279: Put options in user management statements in any order
    Reference(s): /doc/sql.extensions/README.user_management
    Contributor(s): Alex Peshkoff

  • CORE-6278: Efficient table scans for DBKEY-based range conditions
    Contributor(s): Dmitry Yemanov

  • CORE-6274: Increase parse speed of long queries
    Note(s): Backported into v3.0.6
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6268: Add methods to set various names (field, relation, etc.) in metadata builder
    Reference(s): /doc/Using_OO_API.html
    Contributor(s): Alex Peshkoff

  • CORE-6239: Procedures and EXECUTE BLOCK without RETURNS should not be allowed to use SUSPEND
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6237: Performance problem when using SRP plugin
    Note(s): Backported into v3.0.6
    Contributor(s): Alex Peshkoff

  • CORE-6220: Enable delivery of known to the client key to any connection to the server
    Contributor(s): Alex Peshkoff

  • CORE-6219: Add support for special (inf/nan) values when sorting DECFLOAT values
    Contributor(s): Alex Peshkoff

  • CORE-6095: Extend trace record for COMMIT/ROLLBACK RETAINING to allow chaining of transaction ids
    Note(s): Backported into v3.0.6
    Contributor(s): Vlad Khorsun

  • CORE-6069: Show OS-specific error when entrypont is not found in dynamic library
    Contributor(s): Alex Peshkoff

  • CORE-6058: Change behavior of skipped and repeated wall times within time zones
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6049: Builtin functions converting binary string to hexadecimal representation and vice versa
    Reference(s): /doc/sql.extensions/README.builtin_functions.txt
    Contributor(s): Alex Peshkoff

  • CORE-6048: Provide ability to see current state of DB encryption
    Reference(s): /doc/README.monitoring_tables
    Contributor(s): Alex Peshkoff

  • CORE-6032: Add DPB properties for time zone bind and decfloat configuration
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6017: Add transaction info fb_info_tra_snapshot_number
    Contributor(s): Vlad Khorsun

  • CORE-5658: Execute statement with excess parameters
    Reference(s): /doc/sql.extensions/README.execute_statement2
    Contributor(s): Vlad Khorsun

  • CORE-5538: Add ability to backup/restore only those (several) tables which are enumerated as command line argument (pattern)
    Reference(s): /doc/README.gbak
    Contributor(s): Dimitry Sibiryakov

  • CORE-4726: Implement REcreate user <user_name> password <user_pwd>
    Contributor(s): Alex Peshkoff

  • CORE-4579: Distribute separate header files instead merged one
    Contributor(s): Dimitry Sibiryakov

  • CORE-3983: Ability to authenticate user in "EXECUTE STATEMENT ON EXTERNAL DATA SOURCE" by hash of the current password
    Contributor(s): Alex Peshkoff

Bugfixes

  • CORE-6290: Hex number used at the end of statement may read invalid memory and produce wrong values or exceptions
    Note(s): Backported into v3.0.6
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6283: isNullable() in message metadata, returned by metadata builder, does not match with datatype set by setType() in metadata builder
    Note(s): Backported into v3.0.6
    Contributor(s): Alex Peshkoff

  • CORE-6282: Change type of MON$ATTACHMENTS.MON$IDLE_TIMER and MON$STATEMENTS.MON$STATEMENT_TIMER to TIMESTAMP WITH TIME ZONE
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6281: Invalid timestamp errors with RDB$TIME_ZONE_UTIL.TRANSITIONS
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6280: MERGE statement loses parameters in WHEN (NOT) MATCHED clause that will never be matched, crashes server in some situations
    Note(s): Backported into v3.0.6
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6272: Failed attach to a database is not traced
    Contributor(s): Alex Peshkoff

  • CORE-6266: Deleting records from MON$ATTACHMENTS using ORDER BY clause doesn't close the corresponding attachments
    Note(s): Backported into v3.0.6
    Contributor(s): Dmitry Yemanov

  • CORE-6265: Mapping rules are destroyed by backup / restore
    Note(s): Backported into v3.0.6
    Contributor(s): Alex Peshkoff

  • CORE-6264: GBAK with PIPE to stdout: invalid content if user '-se :service_mgr' command switch
    Note(s): Backported into v3.0.6
    Contributor(s): Alex Peshkoff

  • CORE-6262: SHOW DOMAIN/TABLE does not display character set of system objects
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6260: Warnings are not always displayed in ISQL
    Note(s): Backported into v3.0.6
    Contributor(s): Alex Peshkoff

  • CORE-6254: Server crashes when using SET TRANSACTION and ON TRANSACTION START trigger uses EXECUTE STATEMENT against current transaction
    Note(s): Backported into v3.0.6
    Contributor(s): Vlad Khorsun

  • CORE-6253: Crash caused by the locked fb_lock file
    Note(s): Backported into v3.0.6
    Contributor(s): Vlad Khorsun

  • CORE-6252: UNIQUE CONSTRAINT violation
    Note(s): Backported into v3.0.6
    Contributor(s): Vlad Khorsun

  • CORE-6251: Crash when built-in function LEFT or RIGHT is missing its 2nd argument
    Note(s): Backported into v3.0.6
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6250: Signature mismatch when creating package body on identical packaged procedure header
    Note(s): Backported into v3.0.6
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6248: A number of errors when database name is longer than 255 symbols
    Contributor(s): Alex Peshkoff

  • CORE-6243: Regression: v4 Beta 1 rejects POSITION element of v2.5 defined SQL2003 CREATE TRIGGER syntax
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6241: Values greater than number of days between 01.01.0001 and 31.12.9999 (=3652058) can be added or subtracted from DATE
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6238: DECFLOAT: subtraction Num1 - Num2 leads to "Decimal float overflow" if Num2 is specified in scientific notation and less than max double (1.7976931348623157e308)
    Contributor(s): Alex Peshkoff

  • CORE-6236: RDB$TIME_ZONE_UTIL package has wrong privilege for PUBLIC
    Contributor(s): Adriano dos Santos Fernandes, Dmitry Yemanov

  • CORE-6233: Wrong dependencies of stored function on view after backup/restore
    Note(s): Backported into v3.0.6
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6231: Server crashes on shutdown of XNET connection to a local database when events have been registered
    Note(s): Backported into v3.0.6
    Contributor(s): Vlad Khorsun

  • CORE-6230: Unable to connect with database if security.db reference is removed from databases.conf file
    Note(s): Backported into v3.0.6
    Contributor(s): Alex Peshkoff

  • CORE-6227: isc_info_svc_user_dbpath always returns alias of main security database
    Note(s): Backported into v3.0.6
    Contributor(s): Alex Peshkoff

  • CORE-6224: Server crash: re-destruction of the rem_port object
    Note(s): Backported into v3.0.6
    Contributor(s): Dmitry Kovalenko, Alex Peshkoff

  • CORE-6221: Incorrect (throw-based) allocFunc for zlib1: memory leak is possible
    Note(s): Backported into v3.0.6
    Contributor(s): Alex Peshkoff

  • CORE-6218: COUNT(DISTINCT <DECFLOAT_FIELD>) leads FB to crash when there are duplicate values of this field
    Contributor(s): Alex Peshkoff

  • CORE-6217: [inet.cpp] Dangerous work with pointer: delete ptr; ptr=new ;
    Note(s): Backported into v3.0.6
    Contributor(s): Dmitry Kovalenko, Alex Peshkoff

  • CORE-6214: Update outdated tzdata version
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6212: Authentication plugin on server may get garbage data from client instead empty packet
    Contributor(s): Alex Peshkoff

  • CORE-6211: Command "ISQL -X" can not extract ROLE name when use multi-byte charset for connection
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6208: Grant lost in security.db after backup/restore cycle
    Note(s): Backported into v3.0.6
    Contributor(s): Alex Peshkoff

  • CORE-6207: Modifications needed to complile Firebird.pas under FPC
    Contributor(s): Alex Peshkoff

  • CORE-6206: VARCHAR of insufficient length used for set bind of decfloat to varchar
    Contributor(s): Vlad Khorsun

  • CORE-6205: Generate proper error for UNION DISTINCT with more than 255 columns
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6186: Original content of column which is involved into ENCRYPT() is displayed as distorted view after this call
    Contributor(s): Alex Peshkoff

  • CORE-6181: Operations when using "SET DECFLOAT BIND BIGINT,n" with result of 11+ digits, fail with "Decimal float invalid operation"
    Contributor(s): Alex Peshkoff

  • CORE-6174: ibase.h is missing from nightly builds
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6170: Cannot install on CentOS 8 because version of LibTomMath and LibNCurses library
    Contributor(s): Alex Peshkoff

  • CORE-6166: Problems with long object names (> 255 bytes)
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6160: SUBSTRING of non-text/-blob is described to return NONE character set in DSQL
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6159: SUBSTRING SIMILAR is described with wrong data type in DSQL
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6130: Creating backup to stdout using service manager is broken
    Note(s): Backported into v3.0.6
    Contributor(s): Alex Peshkoff

  • CORE-6116: Metadata script extracted using ISQL of a database restored from a v2.5.9 backup is invalid when table has COMPUTED BY fields
    Note(s): Backported into v3.0.6
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6110: 64-bit transaction IDs are not stored properly in status vector
    Contributor(s): Ilya Eremin

  • CORE-6080: Attempt to drop existing user randomly fails with "336723990 : record not found for user"
    Contributor(s): Vlad Khorsun

  • CORE-6071: Restore of encrypted backup of database with SQL dialect 1 fails
    Contributor(s): Alex Peshkoff

  • CORE-6061: Building with --with-builtin-tommath doesn't work
    Contributor(s): Alex Peshkoff

  • CORE-6056: Overflow warnings when building some collations
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6046: Incorrect time zone parsing reads garbage in memory
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6044: ISQL issues with increased identifier length
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6034: The original time zone should be set to the current time zone at routine invocation
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6033: SUBSTRING(CURRENT_TIMESTAMP) does not work
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-6019: Wire compression does not work without MSVC 2010 runtime installation
    Contributor(s): Vlad Khorsun

  • CORE-5976: GBAK multi-database file restore uses wrong minimum number of pages for first database file
    Contributor(s): Mark Rotteveel

  • CORE-5972: External engine trigger crashing server if table have computed field
    Note(s): Backported into v3.0.6
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-5957: Bug in SIMILAR TO when adding numeric quantifier as bound for repetetion of expression leads to empty resultset
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-5931: SIMILAR TO does not return result when invalid pattern is used
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-5892: SQL SECURITY DEFINER context is not properly evaluated for monitoring tables
    Contributor(s): Roman Simakov

  • CORE-5697: Conversion from numeric literals to DECFLOAT adds precision that is not originally present
    Contributor(s): Alex Peshkoff

  • CORE-5696: Conversion from zero numeric literals to DECFLOAT results in incorrect value
    Contributor(s): Alex Peshkoff

  • CORE-5691: File description on Firebird executables should be specific
    Contributor(s): Vlad Khorsun

  • CORE-5664: SIMILAR TO is substantially (500-700x) slower than LIKE on trivial pattern matches with VARCHAR data
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-5445: Cannot install on Debian Stretch/Testing because version of LibTomMath library
    Contributor(s): Alex Peshkoff

  • CORE-5364: gfix -online normal (executed in session #1) does not produce error when there is a SYSDBA-owned session #2
    Note(s): Backported into v3.0.6
    Contributor(s): Alex Peshkoff

  • CORE-4893: SIMILAR-TO leads FB to crash when matching blob with size > 2Gb to a string literal
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-4874: Infinite "SIMILAR TO" matching
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-4739: Accent insensitive comparison: diacritical letters with DIAGONAL crossing stroke pass only test on EQUALITY to their non-accented forms
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-3858: Very poor performance of SIMILAR TO on some arguments
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-3380: Disable reading from the newly created BLOB
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-2251: GBAK doesn't return error code
    Note(s): Backported into v3.0.6
    Contributor(s): Alex Peshkoff

v4.0 Beta 1 (20-Feb-2019)

New features

Improvements

  • CORE-5973: Handling FP overflow in DOUBLE PRECISION value when converting from DECFLOAT
    Contributor(s): Alex Peshkoff

  • CORE-5954: Garbage collection in intermediate record versions
    Reference(s): /doc/README.read_consistency.md
    Contributor(s): Nickolay Samofatov, Roman Simakov, Vlad Khorsun

  • CORE-5952: Enhance restore performance of GBAK using batch API
    Contributor(s): Alex Peshkoff

  • CORE-5948: Make WIN_SSPI plugin produce keys for wirecrypt plugin
    Note(s): Backported into v3.0.5
    Contributor(s): Alex Peshkoff

  • CORE-5928: Make it possible for AuthClient plugin to access authentication block from DPB
    Note(s): Backported into v3.0.5
    Contributor(s): Alex Peshkoff

  • CORE-5921: Provide information about Global Commit Number, Commit Number of currently used database snapshot (if any) and Commit Numbers assigned to the committed transactions
    Reference(s): /doc/sql.extensions/README.builtin_functions.txt
    Contributor(s): Vlad Khorsun

  • CORE-5887: Allow the use of management statements in PSQL blocks
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-5883: Services version 1 cleanup
    Contributor(s): Alex Peshkoff

  • CORE-5874: Provide name of read-only column incorrectly referenced in UPDATE ... SET xxx
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-5779: Add support for riscv64
    Contributor(s): Richard Jones

  • CORE-5770: User who is allowed to manage other users must have this ability WITHOUT need to grant him RDB$ADMIN role
    Contributor(s): Alex Peshkoff

  • CORE-5741: Replace word "fixing" with "adjusting" in GBAK output
    Note(s): Backported into v3.0.5
    Contributor(s): Alex Peshkoff

  • CORE-5718: Make TempCacheLimit setting database-wise
    Contributor(s): Dmitry Yemanov

  • CORE-5705: Store precision of DECFLOAT in RDB$FIELDS
    Contributor(s): Alex Peshkoff

  • CORE-5647: Increase number of formats/versions of views from 255 to 32K
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-5606: Add expression index name to exception message if computation failed
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-4529: Allow to use index when GROUP BY on field which has DESCENDING index
    Contributor(s): Dmitry Yemanov

  • CORE-4409: Enhancement in precision of calculations with NUMERIC/DECIMAL
    Contributor(s): Alex Peshkoff

  • CORE-3808: Provide ability to return all columns using RETURNING clause
    Reference(s): /doc/sql.extensions/README.returning
    Contributor(s): Adriano dos Santos Fernandes

Bugfixes

  • CORE-5995: Creator user name is empty in user trace sessions
    Note(s): Backported into v3.0.5
    Contributor(s): Vlad Khorsun

  • CORE-5993: When creation of audit log file fails, there is no error message in firebird.log
    Note(s): Backported into v3.0.5
    Contributor(s): Vlad Khorsun

  • CORE-5991: Trace could not work correctly with quoted file names in trace configurations
    Note(s): Backported into v3.0.5
    Contributor(s): Vlad Khorsun

  • CORE-5989: iconv / libiconv 1.15 vs libc / libiconv_open | common/isc_file.cpp
    Note(s): Backported into v3.0.5
    Contributor(s): Alex Peshkoff

  • CORE-5986: Incorrect evaluation of NULL IS [NOT] {FALSE | TRUE}
    Note(s): Backported into v3.0.5
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-5985: Regression: ROLE does not passed in ES/EDS (specifying it in the statement is ignored)
    Note(s): Backported into v3.0.5
    Contributor(s): Alex Peshkoff

  • CORE-5982: Error "read permission for BLOB field", when it's an input/output procedure's parameter
    Note(s): Backported into v3.0.5
    Contributor(s): Dmitriy Starodubov

  • CORE-5980: Firebird crashes due to concurrent operations with expression indices
    Note(s): Backported into v3.0.5
    Contributor(s): Vlad Khorsun

  • CORE-5974: Wrong result of select distinct with decfload/timezone/collated column
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-5972: External engine trigger crashing server if table have computed field
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-5965: FB3 optimizer chooses less efficient plan than FB2.5 optimizer
    Note(s): Backported into v3.0.5
    Contributor(s): Dmitry Yemanov

  • CORE-5959: Firebird returns wrong time after changes of time zone
    Note(s): Backported into v3.0.5
    Contributor(s): Vlad Khorsun

  • CORE-5955: Unable to init binreloc with ld >= 2.31
    Note(s): Backported into v3.0.5
    Contributor(s): Roman Simakov

  • CORE-5950: Deadlock when attaching to bugchecked database
    Note(s): Backported into v3.0.5
    Contributor(s): Alex Peshkoff

  • CORE-5943: Server crashes preparing a query with both DISTINCT/ORDER BY and non-field expression in the select list
    Note(s): Backported into v3.0.5
    Contributor(s): Dmitry Yemanov

  • CORE-5934: gpre_boot fails to link using cmake, undefined reference 'dladdr' and 'dlerror'
    Note(s): Backported into v3.0.5
    Contributor(s): Alex Peshkoff

  • CORE-5930: Bugcheck "incorrect snapshot deallocation - too few slots"
    Contributor(s): Vlad Khorsun

  • CORE-5927: With some non-standard authentication plugins providing correct crypt key wire anyway remains not encrypted
    Note(s): Backported into v3.0.5
    Contributor(s): Alex Peshkoff

  • CORE-5926: Attempt to create mapping with non-ASCII user name which is encoded in SINGLE-BYTE codepage (WIN1251) leads to 'Malformed string' error
    Note(s): Backported into v3.0.5
    Contributor(s): Alex Peshkoff

  • CORE-5918: Memory pool statistics is not accurate
    Note(s): Backported into v3.0.5
    Contributor(s): Alex Peshkoff

  • CORE-5907: Regression: can not launch trace if its 'database' section contains regexp pattern with curvy brackets to enclose quantifier
    Note(s): Backported into v3.0.5
    Contributor(s): Alex Peshkoff

  • CORE-5896: NOT NULL constraint is not synchronized after rename column
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-5871: Incorrect caching of the subquery result (procedure call) in independent queries
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-5862: Varchar computed column without explicit type does not populate RDB$CHARACTER_LENGTH
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-5861: GRANT OPTION is not checked for new object
    Contributor(s): Roman Simakov

  • CORE-5855: Firebird 4.0 cannot backup DB with generators which contains space in the names
    Contributor(s): Alex Peshkoff

  • CORE-5800: After backup/restore the indexes by expression on computed field are not working properly
    Note(s): Backported into v3.0.5
    Contributor(s): Dmitry Yemanov

  • CORE-5795: ORDER BY clause on compound index may disable usage of other indices
    Note(s): Backported into v3.0.5
    Contributor(s): Dmitry Yemanov

  • CORE-5750: Date-time parsing is very weak
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-5728: Field subtype of DEC_FIXED columns not returned by isc_info_sql_sub_type
    Contributor(s): Alex Peshkoff

  • CORE-5726: Unclear error message when inserting value exceeding max of DEC_FIXED decimal
    Contributor(s): Alex Peshkoff

  • CORE-5717: Reject non-constant date/time/timestamp literals
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-5710: Datatype declaration DECFLOAT without precision should use a default precision
    Contributor(s): Alex Peshkoff

  • CORE-5700: DECFLOAT underflow should yield zero instead of an error
    Contributor(s): Alex Peshkoff

  • CORE-5699: DECFLOAT should not throw exceptions when +/-NaN, +/-sNaN and +/-Infinity is used in comparisons
    Contributor(s): Alex Peshkoff

  • CORE-5657: Various UDF-related security vulnerabilities
    Contributor(s): Alex Peshkoff

  • CORE-5646: Parse error when compiling a statement causes memory leak until attachment is disconnected
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-5639: Mapping rule using WIN_SSPI plugin: windows user group conversion to firebird role does not work
    Contributor(s): Alex Peshkoff

  • CORE-5637: string right truncation on restore of security db
    Contributor(s): Alex Peshkoff

  • CORE-5612: Gradual slowdown of view operations (create, recreate or drop)
    Contributor(s): Dmitry Yemanov

  • CORE-5611: Higher memory consumption for prepared statements
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-5593: System function RDB$ROLE_IN_USE cannot take long role names
    Contributor(s): Alex Peshkoff

  • CORE-5518: Firebird UDF string2blob() may allow remote code execution
    Contributor(s): Alex Peshkoff

  • CORE-5480: SUBSTRING startposition smaller than 1 should be allowed
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-5395: Invalid data type for negation (minus operator)
    Note(s): Backported into v3.0.5
    Contributor(s): Adriano dos Santos Fernandes, Dmitry Yemanov

  • CORE-5118: Indices on computed fields are broken after restore (all keys are NULL)
    Note(s): Backported into v3.0.5
    Contributor(s): Dmitry Yemanov

  • CORE-5070: Compound index cannot be used for filtering in some ORDER/GROUP BY queries
    Note(s): Backported into v3.0.5
    Contributor(s): Dmitry Yemanov

  • CORE-1592: Altering procedure parameters can lead to unrestorable database
    Contributor(s): Adriano dos Santos Fernandes

v4.0 Alpha 1 (23-Aug-2017)

New features

Improvements

Bugfixes

  • CORE-5545: Wrong syntax with CREATE TRIGGER ... ON

    used with POSITION
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-5454: INSERT into updatable view without explicit field list failed
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-5408: Result of boolean expression can not be concatenated with string literal
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-5404: Inconsistent column/line references when PSQL definitions return errors
    Contributor(s): Adriano dos Santos Fernandes

  • CORE-5237: Invalid handling of dot (.) and asterisk (*) in config file name and path for include clause
    Contributor(s): Dimitry Sibiryakov

  • CORE-5223: Double dots are prohibited in file names if access is restricted to a list of directories
    Contributor(s): Dimitry Sibiryakov

  • CORE-5141: Field definition allows several NOT NULL clauses
    Contributor(s): Dimitry Sibiryakov

  • CORE-4985: Non-privileged user can implicitly count records in a restricted table
    Contributor(s): Dmitry Yemanov

  • CORE-4701: Index and blob garbage collection don't take into accout data in undo log
    Contributor(s): Dimitry Sibiryakov

  • CORE-4483: Changed data not visible in WHEN-section if exception occured inside SP that has been called from this code
    Contributor(s): Dimitry Sibiryakov

  • CORE-4424: Rollback to wrong savepoint if several exception handlers on the same level are executed
    Contributor(s): Dimitry Sibiryakov