| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| FlameRobin-26.6.22-x64.msi | 2026-06-24 | 4.5 MB | |
| flamerobin-portable-26.6.22-x64.zip | 2026-06-24 | 20.7 MB | |
| FlameRobin-26.6.22-x86.msi | 2026-06-24 | 4.1 MB | |
| flamerobin-portable-26.6.22-x86.zip | 2026-06-24 | 19.8 MB | |
| flamerobin-26.6.22.deb | 2026-06-24 | 30.7 MB | |
| flamerobin_26.6.22_amd64.snap | 2026-06-24 | 24.7 MB | |
| flamerobin-26.6.22.flatpak | 2026-06-24 | 14.1 MB | |
| flamerobin-macos-26.6.22.zip | 2026-06-24 | 7.2 MB | |
| README.md | 2026-06-24 | 2.7 kB | |
| v26.6.22 source code.tar.gz | 2026-06-24 | 1.3 MB | |
| v26.6.22 source code.zip | 2026-06-24 | 1.8 MB | |
| Totals: 11 Items | 129.0 MB | 1 | |
FlameRobin Release Notes - Version 26.6.22
We are pleased to announce the release of FlameRobin version 26.6.22. This version contains a key fix for User-Defined Function (UDF) metadata parsing in databases with multi-byte character encodings.
Extensive Summary
In previous versions of FlameRobin, when querying user-defined function parameters or generating the DLL/DDL source representation of a UDF, string parameters (CSTRING, CHAR, and VARCHAR) in databases configured with multi-byte character sets (such as UTF8) had their lengths incorrectly reported.
This occurred because Firebird stores physical byte lengths in the RDB$FUNCTION_ARGUMENTS.RDB$FIELD_LENGTH column rather than logical character counts. For a CSTRING(10) parameter in a UTF8 database, Firebird stores 40 bytes. FlameRobin displayed this as CSTRING(40) in the tree viewer, properties pane, and generated SQL definition. Consequently, trying to recreate or modify the UDF would result in declaring the parameter as CSTRING(40), which Firebird would multiply again by 4 (to 160 bytes), cascading the error.
Version 26.6.22 resolves this issue by querying c.RDB$BYTES_PER_CHARACTER from the RDB$CHARACTER_SETS system table and dividing the raw byte length by this value for string-based parameter types.
Detailed Changelog
1. Engine & Metadata Fixes
- Corrected String Parameter Lengths in UDFs / Functions:
- Updated src/metadata/function.cpp to fetch
c.RDB$BYTES_PER_CHARACTERby joiningRDB$CHARACTER_SETSinFunction::loadChildren()andUDF::loadProperties(). - Automatically divide
RDB$FIELD_LENGTHbyRDB$BYTES_PER_CHARACTERforCHAR(14),VARCHAR(37), andCSTRING(40) parameter types whenRDB$BYTES_PER_CHARACTER > 1. - Solved the issue where UDF DDL generation emitted incorrect lengths for string parameters when the database character set was UTF-8 (e.g.
CSTRING(40)instead ofCSTRING(10)).
2. Testing & Quality Assurance
- New Regression Test:
- Added src/metadata/UdfCstringLengthTest.cpp to validate parameter length calculation and character width division.
- Registered the new test in CMakeLists.txt to run as part of the standard test suite.
- Verified that all unit tests continue to build and pass under
ctest.
3. Version Update
- Incremented build release version to 26.6.22 in src/frversion.h.