Release Notes - Firebird Core - Version 4.0 Alpha 1 - HTML format

Bug

  • [CORE-1746] - Expression index can be created while doing inserts into table
  • [CORE-1894] - Circular dependencies between computed fields crashs the engine
  • [CORE-2731] - Recursive EXECUTE STATEMENT works wrong
  • [CORE-2853] - page 14194, page type 5 lock conversion denied (215)
  • [CORE-3073] - Foreign key cascade with SET DEFAULT uses the default value of the moment of the FK creation
  • [CORE-3530] - BETWEEN operand/clause not supported for COMPUTED columns -- "feature is not supported"
  • [CORE-4424] - Rollback to wrong savepoint if several exception handlers on the same level are executed
  • [CORE-4483] - Changed data not visible in WHEN-section if exception occured inside SP that has been called from this code
  • [CORE-4701] - Index and blob garbage collection doesn't take into accout data in undo log
  • [CORE-4985] - Non-privileged user can implicitly count records in a restricted table
  • [CORE-5122] - Expression index may not be used by the optimizer if created and used in different connection charsets
  • [CORE-5130] - Compiler issues message about "invalid request BLR" when attempt to compile wrong DDL of view with both subquery and "WITH CHECK OPTION" in its DDL
  • [CORE-5133] - ALTER SEQUENCE RESTART WITH does not change the initial value
  • [CORE-5139] - mistake in comment "can't ise MutexLockGuard here"
  • [CORE-5140] - Wrong error message when user tries to set number of page buffers into not supported value
  • [CORE-5141] - Field definition allows several NOT NULL clauses
  • [CORE-5142] - Error "no current record to fetch" if some record is to be deleted both by the statement itself and by some trigger fired during statement execution
  • [CORE-5143] - GBAK restore failed when there is SQL function accessing table and switch -O(NE_AT_A_TIME) is used
  • [CORE-5146] - Suboptimal join order if one table has a selective predicate and MIN is calculated for the other one
  • [CORE-5147] - create trigger fails with ambiguous field name between table B and table A error
  • [CORE-5149] - Regression: LEFT JOIN incorrectly pushes COALESCE into the inner stream causing wrong results
  • [CORE-5153] - Regression: Server crashes when aggregate functions are used together with NOT IN predicate
  • [CORE-5154] - Services API don't work with non-ascii database names
  • [CORE-5155] - [CREATE OR] ALTER USER statement: clause PASSWORD (if present) must be always specified just after USER
  • [CORE-5157] - Server goes into infinite loop when data is sent from client to the service in small packets
  • [CORE-5159] - Regression: engine may throw transliteration errors when running from non-ASCII system path
  • [CORE-5161] - Unique index could be created on non-unique data
  • [CORE-5162] - SEC$ tables and tag/attributes
  • [CORE-5165] - HAVING COUNT(*) NOT IN ( <Q> ) prevent record from appearing in outer resultset when it should be there (<Q> = resultset without nulls)
  • [CORE-5166] - Wrong error message with UNIQUE BOOLEAN field
  • [CORE-5171] - Server crash on bugs.core_2890 in developer build
  • [CORE-5179] - Database-level statistics (MON$STAT_GROUP = 0) may contain multiple rows under concurrent load
  • [CORE-5181] - Build fails when HAVE_MMAP is not defined
  • [CORE-5182] - Inconsistent effects of subsequent statement execution if failing during record refetch
  • [CORE-5183] - Regression: line/column numbering may be twisted if alias.name syntax is used
  • [CORE-5184] - Assertion in cloop dispatcher when trying to save exception information in status interface
  • [CORE-5189] - Codes of operation of user management plugin are missing in public API
  • [CORE-5193] - Precedence problem with operator IS
  • [CORE-5194] - Invalid computed by definition generated by isql -x
  • [CORE-5203] - Single CPU core fully utilized with Trace session
  • [CORE-5207] - ISQL -X may generate invalid GRANT USAGE statements for domains
  • [CORE-5210] - Firebird 3.0 + fbclient 3.0 - POST_EVENT won't work
  • [CORE-5217] - ISQL -x may crash while exporting an exception with message text length > 127 bytes
  • [CORE-5218] - Explicitly defined names for NOT NULL constraints are not exported into script by ISQL -x
  • [CORE-5220] - ISQL -X: double quotes are missed for COLLATE <C> of CREATE DOMAIN statement when <C> is from any non-ascii charset
  • [CORE-5222] - SELECT WITH LOCK may raise unexpected update conflict errors under concurrent load
  • [CORE-5223] - Double dots are prohibited in file names if access is restricted to a list of directories
  • [CORE-5224] - Transaction id tags for services API do not support new 48 bit transaction ids
  • [CORE-5225] - Authentication end with first plugin that has the user but auth fails; should continue with next plugin
  • [CORE-5226] - Incorrect result set (missing records) may be returned by the ORDER plan query navigating on a descending index
  • [CORE-5228] - Restore may hang if the database contains more than 4 billion records
  • [CORE-5231] - EXECUTE STATEMENT: BLR error if more than 256 output parameters exist
  • [CORE-5232] - 32-bit Locks on Big-Endian Systems Lead To Deadlock
  • [CORE-5233] - Unaligned Memory Access in MET_format
  • [CORE-5234] - Access violation on UDF crashes server
  • [CORE-5236] - IN/ANY/ALL predicates may cause sub-optimal (late filtering) execution of joins
  • [CORE-5237] - Invalid handling of dot (.) and asterisk (*) in config file name and path for include clause
  • [CORE-5241] - Affected rows are not counted for some update operations with views
  • [CORE-5244] - Wrong error message when trying to execute SELECT statement using isc_dsql_execute_immediate
  • [CORE-5246] - String truncation error while selecting from MON$ tables if some user-defined context variable exceeds 255 bytes in length
  • [CORE-5248] - Improve consistency in GRANT syntax between roles and privileges according to SQL standard
  • [CORE-5249] - Incorrect use of readlink() system call
  • [CORE-5252] - Assertion on bugs.core_3029 in debug build
  • [CORE-5264] - Database cannot be unlocked (nbackup) if located on a raw device
  • [CORE-5268] - Nested OR conditions may lead to incorrest results
  • [CORE-5270] - FBSVCMGR does not produce error while attempting to shutdown a database without specified timeout (prp_force_shutdown N)
  • [CORE-5271] - Regression: Can not create large index
  • [CORE-5273] - Crash when attempt to create database with running trace ( internal Firebird consistency check (cannot find tip page (165), file: tra.cpp line: 2233) )
  • [CORE-5275] - Expression index may become inconsistent if CREATE INDEX was interrupted after b-tree creation but before commiting
  • [CORE-5277] - Parameters with multibyte character sets allow to bypass the character limit of varchar fields
  • [CORE-5278] - A number of SPB parameters fail in FB 3 & 4
  • [CORE-5279] - Granting access rights to view is broken
  • [CORE-5284] - Firebird fails to build with USE_VALGRIND
  • [CORE-5285] - Segfault when attachment is closed before it's request/statement/etc.
  • [CORE-5289] - Small memory leak when resultset is empty
  • [CORE-5291] - Error messages differ when regular user tries to RESTORE database, depending on his default role and (perhaps) system privilege USE_GBAK_UTILITY
  • [CORE-5292] - Database corrupted when trying to encrypt it but appropriate key is missing
  • [CORE-5294] - Memory leak when use SHOW GRANTS on new empty database (3.0.1 & 4.0; SS & SC)
  • [CORE-5295] - Validation could read after the end-of-file when handle multifile database
  • [CORE-5296] - Error in network protocol when performing callback to client for database crypt key
  • [CORE-5302] - Performance regression when bulk inserting into table with indices
  • [CORE-5304] - Regression: Can not restore database with table contains field CHAR(n) and UTF8 character set
  • [CORE-5305] - CASCADE UPDATE fails for self-referencing FK
  • [CORE-5307] - Random "invalid transaction handle" errors are returned from the engine
  • [CORE-5308] - ISQL hangs in BLOBVIEW command
  • [CORE-5313] - Data type unknown error with LIST
  • [CORE-5314] - UDFs declared with large varchars take excessive time to execute
  • [CORE-5322] - Cascade deletion in self-referencing table could raise "no current record for fetch operation" error
  • [CORE-5326] - Embedded - encrypting a database crashes host process when background encryption gets ready while no connection is established to that database
  • [CORE-5327] - internal Firebird consistency check (cannot find tip page (165), file: tra.cpp line: 2307)
  • [CORE-5329] - Database gets partially corrupted in the "no-reserve" mode
  • [CORE-5330] - Trace session leads FB 4.0 to hang after 2nd launch of trivial .sql script. Neither attach to any database nor regular restart of FB service can be done.
  • [CORE-5337] - Regression: The subquery in the insert list expressions ignore the changes made earlier in the same executable block.
  • [CORE-5339] - Assertion in createDatabase() when doing overwrite check
  • [CORE-5341] - User collate doesn't work with blobs
  • [CORE-5347] - Races when initializing wire compression
  • [CORE-5348] - Databases created at build process are owned by Windows administrator, not SYSDBA
  • [CORE-5350] - Assert in CachedMasterInterface::set
  • [CORE-5351] - LEFT JOIN incorrectly pushes UDF into the inner stream causing wrong results
  • [CORE-5355] - XpbBuilder fails to create new TPB
  • [CORE-5359] - OO API - MessageMetadata's getScale returns int and MetadataBuilder's setScale want unsigned
  • [CORE-5366] - Regression: could not use CASE expression with more than 255 conditions.
  • [CORE-5367] - Regression: (boolean) parameters as search condition no longer allowed
  • [CORE-5368] - Regression: client application is hang (in same cases trow an access violation in Engine12.dll) on select-ing from multiple threads using 1 embedded connection
  • [CORE-5381] - Regression: could not execute query (select from view with nested view)
  • [CORE-5382] - Incorrect processing (truncation) of SQL statement longer than 10MB
  • [CORE-5383] - Dependencies in Package not recognised
  • [CORE-5384] - Plugin manager fails to provide appropriate config information when name of configuration file is set in plugins.conf
  • [CORE-5390] - ISQL crashes corrupting memory when statement length is greater than 10 MB
  • [CORE-5392] - BUGCHECK 179 (decompression overran buffer) or unexpected lock conflict may happen during record versions backout
  • [CORE-5393] - Bad optimization of some operations with views containing subqueries
  • [CORE-5404] - Inconsistent column/line references when PSQL definitions return errors
  • [CORE-5408] - Result of boolean expression can not be concatenated with string literal
  • [CORE-5410] - Dependencies are not stored when using some type of constructions in subroutines
  • [CORE-5414] - Error restoring on FB 3.0 from FB 2.5: bugcheck 221 (cannot remap)
  • [CORE-5415] - [security3.fdb] wrong page type page 22 is of wrong type (expected pointer, found index root)
  • [CORE-5416] - [FB3] Memory Leaks. FB does not release memory after load tests.
  • [CORE-5417] - Engine could hang up if auto-sweep is starting while database is shutting down
  • [CORE-5421] - Performance degradation in FB 3.0.2 compared to FB 2.5.7
  • [CORE-5422] - Decompression overran buffer after rollback
  • [CORE-5425] - Server hangs under load test
  • [CORE-5428] - Rare segfault when preparing request working with a table with triggers
  • [CORE-5432] - Performance regression in Classic Server: too much time is spent during context switches
  • [CORE-5435] - Badly selective index could be used for extra filtering even if selective index is used for sorting
  • [CORE-5447] - EXECUTE STATEMENT <e> when <e> starts with '--' (comment) issues "-Unexpected end of command - line 1, column <NNN>", value <NNN> is invalid (2.5 ... 4.0) and can change randomly (only in 3.0, 4.0)
  • [CORE-5448] - FB3 - crash (consistency check) when creating view on table which has column with character set none, database default charset is utf8, and utf8 default collation is 'unicode'.
  • [CORE-5452] - Segfault when engine's dynamic library is unloaded right after closing worker threads (GC and/or cache writer)
  • [CORE-5454] - INSERT into updatable view without explicit field list failed
  • [CORE-5456] - Migrating Firebird 2.5.2 to 3.0.1 gbak restore crashes at the end always
  • [CORE-5457] - Bugcheck 167 (invalid SEND request)
  • [CORE-5458] - Connections fail due to dead NFS mount points
  • [CORE-5464] - AV in fbclient when reading blob stored in incompatible encoding
  • [CORE-5469] - Statement handles allocated with isc_dsql_alloc_statement2() are not cleaned on detach
  • [CORE-5470] - Trace INCLUDE_FILTER with [[:WHITESPACE:]]+ does not work when statement contains newline is issued
  • [CORE-5472] - Problems with dbcrypt key transfer
  • [CORE-5474] - 'Restrict UDF' is not effective, because fbudf.so is dynamically linked against libc
  • [CORE-5476] - Trace shows info only after 2nd (repeated) .sql run (FB must be restarted before this)
  • [CORE-5477] - Trace duplicates asci_char(13) in its output (Windows only)
  • [CORE-5484] - Database on NFS share is unavailable when accessed using mount point path
  • [CORE-5489] - Bad performance for NULLs filtering inside a navigational index scan
  • [CORE-5494] - Creating a column of type BLOB SUB_TYPE BINARY fails with a Token unknown
  • [CORE-5495] - New users or changed passwords in legacy authentication do not work in Firebird 4
  • [CORE-5496] - Creating SRP SYSDBA with explicit admin (-admin yes in gsec or grant admin role in create user) creates two SYSDBA accounts
  • [CORE-5498] - Cannot create connection for DB Events.
  • [CORE-5501] - Unclear gstat's diagnostic when damaged page in DB file appears encrypted
  • [CORE-5503] - Classical server has a maximum of 64 connections when using systemd init scripts (ubuntu >= 16.04)
  • [CORE-5508] - Problem with establishing connect using client 3.0.2.32708 to server 4.0.0.572
  • [CORE-5510] - 3+ versions may send status vector with more then 20 items to old clients and cause disconnect
  • [CORE-5516] - Firebird service crashes when stopping
  • [CORE-5517] - Classic server periodically raise "Global mapping memory overflow" and need to be restarted to accept new connections
  • [CORE-5521] - Race condition between event notification and event registration
  • [CORE-5526] - External routines receives parameters with incorrect length or datatype
  • [CORE-5527] - External routines does not receive default values for they output parameters
  • [CORE-5528] - internal Firebird consistency check (limbo impossible (184), file: vio.cpp line: 2379)
  • [CORE-5533] - Crash on 3.0 and 4.0 when DB contains database-level trigger
  • [CORE-5535] - Garbage value in RDB$FIELD_SUB_TYPE in RDB$FUNCTION_ARGUMENTS after altering function
  • [CORE-5537] - Assign DB access_mode to RW (by using gfix or fbsvcmgr) leads FB 4.0 Classic to create new firebird-process on every such attempt. Stopping FB Classic service does not drop these ("child") FB processes.
  • [CORE-5540] - Every other execution of embedded isql slow
  • [CORE-5542] - Database-level triggers related to TRANSACTION events (i.e. start, commit and rollback) do not take in account their POSITION index (when more than one trigger for the same event type is defined)
  • [CORE-5545] - Wrong syntax with CREATE TRIGGER ... ON <table> used with POSITION
  • [CORE-5549] - Errors building / running FB on non-SSE enabled HW
  • [CORE-5550] - Computed decimal field in a view has wrong RDB$FIELD_PRECISION
  • [CORE-5553] - Database cannot be encrypted if DatabaseAccess is set to None
  • [CORE-5555] - 3.0 error handling for SELECT WITH LOCK breaks compatibility with 2.5
  • [CORE-5562] - Firebird crashes when UDF (Delphi?) gets loaded and unloaded frequently
  • [CORE-5565] - No integer division possible in dialect 1
  • [CORE-5566] - Server crashes while restoring backup if the shadow file already exists
  • [CORE-5567] - Direct system table modifications are not completely prohibited
  • [CORE-5569] - ISQL incorrectly pads UNICODE_FSS/UTF8 columns when they use a collation
  • [CORE-5570] - Negative infinity (double) shown incorrectly without sign in isql
  • [CORE-5576] - Bugcheck on queries containing WITH LOCK clause
  • [CORE-5579] - request synchronization error in the GBAK utility (restore)
  • [CORE-5580] - Signature of packaged functions is not checked for mismatch with [NOT] DETERMINISTIC attribute
  • [CORE-5588] - DbInfo interface is not passed to ancillary instances of plugin
  • [CORE-5591] - Engine hangs soon after some errors during transaction start
  • [CORE-5596] - internal Firebird consistency check ((CMP) copy: cannot remap (221), file: cmp.cpp line: 3085).

Improvement

  • [CORE-749] - Increase maximum length of object names to 63 characters
  • [CORE-1095] - Support BETWEEN predicate for select expressions
  • [CORE-1132] - Exception context in PSQL exception handlers
  • [CORE-2040] - Allow exception name and possibly exception text to be determined within a "WHEN ANY" error handling block
  • [CORE-2192] - Extend maximum database page size to 32KB
  • [CORE-2216] - Nbackup as online dump
  • [CORE-2557] - Grants on MON$ tables
  • [CORE-3637] - Port for Linux/m68k
  • [CORE-4238] - Provide ability for engine to forcely make rollback for each TX that stays uncommitted more than some limit of time
  • [CORE-4436] - Support for different hash algorithms in HASH system function
  • [CORE-4486] - Trace: provide filter to INCLUDE / EXCLUDE errors by their mnemonical names
  • [CORE-4891] - Remove duplication of ascii_char(13) from the output of trace
  • [CORE-4913] - Database backup using Nbackup is getting slow when directed to NAS over SMB protocol
  • [CORE-5064] - Add datatypes (VAR)BINARY(n) and BINARY VARYING(n) as alias for (VAR)CHAR(n) CHARACTER SET OCTETS
  • [CORE-5119] - Support autocommit mode in SET TRANSACTION statement
  • [CORE-5167] - Allow implicit conversion between boolean and string
  • [CORE-5180] - Do not require root rights to build linux package
  • [CORE-5201] - Return nonzero result code when restore fails on activating and creating deferred user index
  • [CORE-5204] - Build the Linux code with --enable-binreloc and create an option in the installer to install in different locations than /opt/firebird
  • [CORE-5205] - Add a switch to build linux binaries with builtin libtommath
  • [CORE-5216] - Provide location context (line/column numbers) for runtime errors raised inside EXECUTE BLOCK
  • [CORE-5229] - Allow to enforce IPv4 or IPv6 in URL-like connection strings
  • [CORE-5257] - Enable nested keys in plugin configuration
  • [CORE-5266] - Allow statement 'create OR ALTER user sysdba password ...' to initialize empty securityN.fdb as 'CREATE user ...' (i.e. which is typed without "or alter" clause)
  • [CORE-5269] - FBTRACEMGR should understand 'role <name>' command switch (needed to explicitly connect with role with "TRACE_ANY_ATTACHMENT" privilege)
  • [CORE-5374] - Make database name available to crypt plugin
  • [CORE-5380] - Allow subroutines to call others subroutines and themself recursively
  • [CORE-5430] - Support for INCREMENT option in identity columns
  • [CORE-5431] - Support for DROP IDENTITY clause
  • [CORE-5433] - Minor performance optimization - avoid additional database attachment from security objects mapping code
  • [CORE-5434] - Read-only transactions in SuperServer could avoid immediate write of Header and TIP pages after change
  • [CORE-5441] - Cache physical numbers of often used data pages to reduce number of fetches of pointer pages
  • [CORE-5475] - Provide ability to filter out info and warnings from trace log
  • [CORE-5543] - Restore of pre ODS 11.1 database can leave RDB$RELATION_TYPE null
  • [CORE-5563] - Use exception instead bugcheck for EVL_expr

New Feature

  • [CORE-658] - Query timeout on the server
  • [CORE-751] - Implicitly active roles (and their permissions summarized)
  • [CORE-985] - Timeout parameters
  • [CORE-1815] - Ability to grant role to another role
  • [CORE-2762] - New built-in function to check whether some role is implicitly active
  • [CORE-4563] - Add support for Windows 8/2012 fast/low-latency "TCP Loopback Fast Path" functionality
  • [CORE-5343] - Allow particular DBA privileges to be transferred to regular users
  • [CORE-5449] - Support DEFAULT context value in INSERT, UPDATE, MERGE and UPDATE OR INSERT statements
  • [CORE-5463] - Support GENERATED ALWAYS identity columns and OVERRIDE clause
  • [CORE-5488] - Timeouts for running SQL statements and idle connections
  • [CORE-5568] - SQL SECURITY

Task

  • [CORE-5238] - Replace xinetd support with the native listener

Sub-task

  • [CORE-1780] - Move code in pcmet module into appropriate place (dfw and met)
  • [CORE-3616] - Window Function: percent_rank()
  • [CORE-3617] - Window Function: cume_dist()
  • [CORE-3618] - Window Function: ntile(num_buckets integer)
  • [CORE-3647] - Window Function: frame (rows / range) clause
  • [CORE-5173] - Assertion in debug build on nested exception handlers
  • [CORE-5174] - Wrong sequence of savepoints may be produced by selectable procedure
  • [CORE-5346] - Window Function: named window
  • [CORE-5442] - Enhance control upon ability to share database crypt key between attachments in SS
  • [CORE-5525] - Create new datatype that will be used a base type for high precision NUMERIC

Edit/Copy Release Notes

The text area below allows the project release notes to be edited and copied to another document.