Bugs Fixed
Fix race condition in shutdownThread start that can cause server to be unable to stop
Pull Request: 8380 Affected versions: 3.0.12, 4.0.5, 5.0.1, 6.0 Initial Fixed for: 5.0.2, 6.0 Alpha 1
Incorrect cardinality estimation for retrievals with multiple compound indices having common set of fields
GitHub Issue: 8379 Affected versions: 3.0.12, 4.0.5, 5.0.1, 6.0 Initial Fixed for: 5.0.2, 6.0 Alpha 1
The issue is rather old but usually does not cause any harm. However, in v5 (due to more complex optimizer) this sometimes causes incorrect plans being chosen (e.g. HASH instead of JOIN).
Unnecessary reload of the encryption plugin in the Super architecture
GitHub Issue: 8389 Affected versions: 3.0.12, 4.0.5, 5.0.1, 6.0 Initial Fixed for: 3.0.13, 4.0.6, 5.0.2, 6.0 Alpha 1
Deadlock might happens when database is shutting down with internal worker attachments exists
GitHub Issue: 8390 Affected versions: 5.0.1, 6.0 Initial Fixed for: 5.0.2, 6.0 Alpha 1
Deadlock between WorkerAttachment::shutdownDbb() and WorkerStableAttachment::doOnIdleTimer() due to wrong mutexes lock order.
Crash when creating index on table that uses UDR and ParallelWorkers > 1
GitHub Issue: 8386 Affected versions: 5.0.1, 6.0 Initial Fixed for: 5.0.2, 6.0 Alpha 1
The crash happens on SuperServer only, table should be big enough to have more than one pointers page. Also table must depend on some UDR, for example, use UDR in computed field.
The bug here IS in lightweight working attachments, that is used by SuperServer in parallel operations, and its interaction with External Engines manager. Note, Classic and SuperClassic doesn't use lightweight working attachments, they uses regular (more "heavy") attachments for parallel tasks.
InnoSetup based installer deletes msiexec log of runtime libraries install
GitHub Issue: 8407 Affected versions: 5.0.1, 6.0 Initial Fixed for: 5.0.2, 6.0 Alpha 1
Installation of the msi based redistributable vcrt runtime libraries has always been logged. The only logical location for the output is to the temporary directory created by the InnoSetup installer. Unfortunately these logs are automatically deleted when the installer closes.
This fix adds the option to add /MSILOGDIR="/path/to/location" to scripted installs so that the logs can be preserved for future examination if required. It is hoped that this fix will help find a permanent solution to #8326.
Potential deadlock when starting the encryption thread
GitHub Issue: 8402 Affected versions: 4.0.5, 5.0.1, 6.0 Initial Fixed for: 4.0.6, 5.0.2, 6.0 Alpha 1
Negative statement ID in trace output
GitHub Issue: 8417 Affected versions: 3.0.0, 4.0.0, 5.0.0, 6.0 Initial Fixed for: 3.0.13, 4.0.6, 5.0.2, 6.0 Alpha 1
Changes
Add option to disable install of MS VCRT runtime libraries via a scripted install
GitHub Issue: 8408 Apply to: 5.0.2, 6.0 Alpha 1
Issue #8326 highlights the problem that sometimes the installation of the MS VCRT libraries required by Firebird 5 can require a reboot of windows. This can especially be a problem for deployment of scripted installs.
This option allows users to skip the installation of the MS VCRT runtimes. This is not a fix for #8326 but may provide a work around. If users use this option it becomes their responsibility to ensure that the runtimes are installed by another method.
New features/improvements
Make Trace use HEX representation for parameter values of types CHARACTER SET OCTETS and BINARY
GitHub Issue: 8356 Apply to: 5.0.2, 6.0 Alpha 1
From firebird support list: https://groups.google.com/u/2/g/firebird-support/c/kPgAW-BtpQo
When tracing, parameters are logged, very nice. Currently we use CHAR(16) CHARACTER SET OCTETS to store ID-values.
Tracing log them like this. param0 = varchar(16), " ßFÃ/¿J¹Z3¡õñ]["
I can manually convert this to hex by Win1252 decoding, (DF46C32FBF4AB95A33A1F5F15D5B) but it would be much easier to have a Hex presentation when parameter is of Octets charset. Please implement encoding with hex-values when parameter is of type CHAR(16) CHARACTER SET OCTETS.
New feature/improvement requests
Immutable table
GitHub Issue: 8387
Like in Oracle: https://oracle-base.com/articles/21c/immutable-tables-21c It's for data tampering protection (for example log table).
Extend gstat statistics by indexes (null values)
GitHub Issue: 8404
It is proposed to expand this statistics with the number of null values in the keys. This value is quite important if the index can contain null values, since the real selectivity for operations that do not take null into account will be different (primarily equality). It is clear that the share of null values should be in the stored statistics, as is selectivity now. However, the number of null values in the gstat output will also be useful for assessing the real selectivity.