Bugs

(re)set owner/group in tarbal of non-root builds

GitHub Issue: 8034 Affected versions: 5.0.0 Fixed for: 5.0.1, 6.0 Alpha 1

Use:

tar --onwer root --group root -c...

for non-root build Firebird binaries.

remove directory entries from debug symbols tarbal

GitHub Issue: 8037 Affected versions: 5.0.0 Fixed for: 5.0.1, 6.0 Alpha 1

Directory entries, in general, superfluous in tarbal and may change owner/group already existed tree after untar debug symbols. It will be advisable to remove directory entries from debug symbols tarbal. I.e.:

find . -not -type d | sort | tar -T- ...

Creation Index Error when restore with parallels workers

GitHub Issue: 8094 Affected versions: 5.0.0 Fixed for: 5.0.1, 6.0 Alpha 1

Segfault in connections pool during server shutdown

GitHub Issue: 8114 Affected versions: 4.0.4, 5.0.0 Fixed for: 4.0.5. 5.0.1, 6.0 Alpha 1

ICU63.1 suppresses conversion errors

GitHub Issue: 8108 Affected versions: 4.0.4, 5.0.0 Fixed for: 4.0.5. 5.0.1, 6.0 Alpha 1

FB4 returns an empty string when he can't translate Unicode symbol into ICU-codepage.

FB3 in this case returns an error.

Unicode symbol with code 0x115F (input string 'ᅟ')

Connection charset is NONE.

-- FB3 and FB4 are OK.
select cast(_utf8 'ᅟ' as varchar(1) character set utf8) from rdb$database

-- FB3 returns an error, FB4 OK (an error is expected)
select cast(_utf8 'ᅟ' as varchar(1) character set tis620) from rdb$database

-- FB3 and FB4 return an error (it is OK)
select cast(_utf8 'ᅟ' as varchar(1) character set win1251) from rdb$database

Error isc_read_only_trans (335544361) should report SQLSTATE 25006

GitHub Issue: 8112 Affected versions: 5.0.0 Fixed for: 5.0.1, 6.0 Alpha 1

Currently error isc_read_only_trans (335544361) reports SQLSTATE 42000 (syntax error or access rule violation). It should report SQLSTATE 25006 (invalid transaction state, read-only SQL-transaction). See ISO/IEC 9075-2:2023, section 24.1 SQLSTATE, and the general rules for various modifying DML.

The isc_array_lookup_bounds function returns invalid values for low and high array bounds

GitHub Issue: 8100 Affected versions: 5.0.0 Fixed for: 5.0.1, 6.0 Alpha 1

In FB5 and newer (tested for the latest snapshots of FB5 and FB6), there is an incorrect behavior upon calling the isc_array_lookup_bounds() function: the array bounds ALWAYS equal zero.

Firebird crashes if a plugin factory returns nullptr and no error in status

GitHub Issue: 8101 Fixed for: 3.0.12, 4.0.5, 5.0.1, 6.0 Alpha 1

If a trace plugin's factory returns nullptr and no error in status - Firebird crashes trying to reference this pointer. Returned value should be checked for nullptr in any case.

Procedure manipulation can lead to wrong dependencies removal

GitHub Issue: 8123 Affected versions: 3.0.11, 4.0.4, 5.0.0 Fixed for: 5.0.1, 6.0 Alpha 1


New features/improvements

Remove gfix -cache option

GitHub Issue: 8010 Affected versions: 5.0.0 Apply to: 4.0.5, 5.0.1, 6.0 Alpha 1

Gfix currently lists a -cache option which is documented as "shutdown cache manager"), and this option - looking at the alice/exe.cpp code - can be used in combination with -shutdown, but it doesn't seem to be actually doing anything (the associated isc_dpb_shutdown bitmap value of isc_dpb_shut_cache is never used in Firebird).

This seems to be some remnant from the InterBase days, and as such, it should be removed.

Make protocol schemes case-insensitive

GitHub Issue: 8066 Affected versions: 5.0.0 Apply to: 4.0.5, 5.0.1, 6.0 Alpha 1

Currently the protocol schemes in the Firebird 3.0+ connection URLs are case-sensitive (Firebrd/fbclient only accepts the lowercase variant).

Similar to RFC 3986, I think we should handle schemes case-insensitively, where lowercase is the canonical form. See https://www.rfc-editor.org/rfc/rfc3986#section-3.1

In other words, Firebird should accept inet://..., INET://..., inet4://..., INET4://..., inet6://..., INET6://... (and mixed case forms) equally.

Inefficient evaluation of expressions like rdb$db_key <= ? after mass delete

GitHub Issue: 8104 Affected versions: 4.0.4, 5.0.0 Apply to: 4.0.5, 5.0.1, 6.0 Alpha 1

Currently, engine evaluates expression with upper limit on DBKEY after some available record is found. Here, available is: non-deleted and visible to the current transaction.

After mass DELETE there could be a lot of deleted records before one available will be found. I.e. engine could read many more records beyond of upper limit on DBKEY before check is made.

Thus it will be much more effective to check for DBKEY's upper limit more early, before check for record availability.

The problem in new implementation of callback function UCNV_FROM_U_CALLBACK_STOP in ICU v63.1 In ICU v52 (FB3) this function does not contain any code

Like this post? Share on: TwitterFacebookEmail


Related Articles


Author

IBPhoenix

Published

Category

News

Tags