Red Database 3.0 - v3.0.4.169 RC

Dec. 30, 2019, 4:06 p.m.



  1. Can't change user attributes without changing password.
  2. Fix deleted memory use in optimizer
  3. Fix wipe memory after merging 077a2a3b from firebird.
  4. If BugcheckAbort is enabled try to create memory dump in case of critical lock manager error
  5. In case of direct IO use 4K page alignment because of some device requirements.
  6. CORE-6198: Wrong error checking for pread / pwrite calls
  7. Eliminated possibility of infinite loop in cases when changes in BLR are ignored by the server for some reason (see)
  8. Parsing 12-digit memory addresses. If gcc uses the -pie flag, need to consider that a memory address of executable file will be 12-digit, and executable file will be labeled as DYN.
  9. Check for existence of process file in hashgen
  10. Fixed registration of Srp plugins in Windows.
  11. Checking for opening executable memory in hashgen. If specified invalid process id on linux system, then program cannot open process memory and ends with segmentation fault
  12. Backport of the fix from the master branch: Now CREATE FUNCTION/PROCEDURE inside CREATE PACKAGE does not require CREATE FUNCTION/PROCEDURE privilege. It's not really necessary since there are no packages in 3.0 but the patch fixes TDBB_trusted_ddl flag reset. So let it be.
  13. Search for upgrade script in location found in registry when upgrading.
  14. Add fbtrace_* and jvm.args to upgrade script


  1. Implemented parsing of double-quoted strings in CSV adapter.
  2. Ported parameter "LoginFailureDelay" from 2.6.
  3. Allow to disable fields evaluating for external trigger. External trigger object now can give a hint to engine which fields will not be used and do not need to be evaluated. Properly implemented function getDoNotEvaluateField should return true, if field should not be evaluated. Index of field should start from 0. Index -1 reserved for all computed fields, so external trigger can ask engine do not evaluate computed fields.
  4. Output error messages to stderr in hashgen
  5. Switch -ig allows to continue restore when errors occur during parsing BLR of procedure, function or trigger (see)

fbjava updated to 1.1.6. Changes cince 1.1.4:

  1. Ignore result type for trigger functions. We want some compatibility with JavaESPUDF at least for backup-restore
  2. Initial support for JRE 9+. Add new search path for libjvm. Do not restrict code from jrt://
  3. Support ExternalTrigger::getDoNotEvaluateField function. Fields which should not be evaluated can be passed through annotations: org.firebirdsql.fbjava.annotations.DoNotEvaluateComputedFields and org.firebirdsql.fbjava.annotations.DoNotEvaluateField
  4. Add EvaluateField annotation in addition to DoNotEvaluateField. If these annotations exists only fields from annotations will be evaluated. EvaluateField and DoNotEvaluateField (DoNotEvaluateComputedFields) are mutually exclusive. If both annotation present, RuntimeException will be raised.

fbjava_lucene updated to 2.0.7. Changes cince 2.0.6:

  1. Return short from indexFieldChange to fix backup restoring from 2.x. See This function will NOT work on FBJava, because it requires TriggerContext, but at least backup with such trigger can be restored.

Ported from Firebird:

  1. Prevent child process hung if it writes too much data to the pipe and overflow the pipe buffer. Preserve child eol's when print child stderr data. Try to distinguish case when child's stdout closed abnormally.
  2. Sub-task CORE-4463: Windows implementation for CORE-4462 (Make it possible to restore compressed .nbk files without explicitly decompressing them)
  3. Fixed CORE-6197: Memory leak in INET_connect().
  4. MSVC declare uintXXX_t types at stdint.h
  5. Fixed CORE-5902: Add Firebird Event fails with error. "While isc_que_events - Failed to establish a secondary connection for event processing".
  6. Fixed CORE-6182: ExtConnPoolLifeTime acts as countdown for activity in MOST RECENT database (of several) rather then separate for each of used databases
  7. Let logAndDie() call abort() on all platforms. It prevent hung when process exits (instead of aborts) and tries to release resources.
  8. Backport addition for CORE-4463: Avoid handle leak after killing hung child process. Print child's stderr after child is gone to not loose very last childs output.
  9. Backported CORE-6203: "Error reading data from the connection" is raised sometimes when using non-default authentication plugin
  10. Better name for print_child_error() method