Saturday, December 06, 2025

A modern C++ wrapper for the Firebird database API.

A modern C++ wrapper for the Firebird database API.

Documentation | Repository

fb-cpp provides a clean, modern C++ interface to the Firebird database engine. It wraps the Firebird C++ API with RAII principles, smart pointers, and modern C++ features.

Features Modern C++: Uses C++20 features for type safety and performance
  • RAII: Automatic resource management with smart pointers
  • Type Safety: Strong typing for database operations
  • Exception Safety: Proper error handling with exceptions
  • Boost Integration: Optional Boost.DLL for loading fbclient and Boost.Multiprecision support for large numbers

News via  Firebird-Devel group

Thursday, December 04, 2025

PHP Firebird changes in 2025 : 5.0.2 up through 6.1.1-RC.2.

I fetched the release notes for FirebirdSQL/php-firebird and made a concise summary of the user-visible changes and upgrade impact for versions from PHP Firebird 5.0.2 up through 6.1.1-RC.2.


I retrieved the release entries for 5.0.2, 6.1.1-RC.0, 6.1.1-RC.1 and 6.1.1-RC.2 and distilled the highlights and upgrade impact into a short, actionable summary below.


Summary of changes (5.0.2 → 6.1.1-RC.2)


- PHP Firebird 5.0.2 (published 2025-04-24)

  - Implemented INT128 support; values converted to string in PHP (PHP has no native 128-bit integer).

  - Removed trailing whitespaces on CHAR data types.

  - Added Windows installation requirement notes.

  - Impact: INT128 columns will appear as strings — check code that expects numeric types.


- PHP Firebird 6.1.1-RC.0 (published 2025-11-05)

  - Added IBASE_LOCK_TIMEOUT transaction option.

  - Added support for Firebird 4/5 types: INT128, DECFLOAT, TIME WITH TIMEZONE, TIMESTAMP WITH TIMEZONE.

  - New INI options:

    - ibase.default_trans_params (e.g., IBASE_READ | IBASE_NOWAIT)

    - ibase.default_lock_timeout (seconds; used together with IBASE_LOCK_TIMEOUT)

  - Support for long metadata (long table/field names).

  - Introduced IBASE_VER constant.

  - Various optimizations and bug fixes.

  - Note: Firebird 4/5 features require fbclient 4/5 dynamic library available in PATH.

  - Impact: to use the new types/features, ensure fbclient is updated and on PATH; consider configuring the new INI options for default transaction behavior.


- PHP Firebird 6.1.1-RC.1 (published 2025-11-06)

  - New function: ibase_get_client_version().

  - Build/runtime change: no compile-time dependency on fb_get_master_interface() and fb_get_statement_interface(); the extension now checks for these interfaces dynamically in the fbclient library.

  - A number of smaller fixes.

  - Impact: improved compatibility with varying fbclient builds; you can query client version from PHP.


- PHP Firebird 6.1.1-RC.2 (published 2025-11-10)

  - New functions: ibase_get_client_major_version(), ibase_get_client_minor_version().

  - Addressed multiple issues (referenced as #22, #78, #88, #91, #92, #95, #96 in release notes).

  - Possible breaking changes called out:

    - ibase_close() now closes the connection immediately instead of decreasing a reference count (see issue #22). Impact: code relying on previous refcount-based behavior may see connections closed sooner.

    - Fetching TIME fields with the IBASE_UNIXTIME flag now returns time as a string instead of negative values. Impact: code expecting numeric/negative values should be updated to handle string results.

  - Impact: review uses of ibase_close() and any code relying on previous reference-count semantics; update time-handling code that uses IBASE_UNIXTIME.


Upgrade checklist / recommendations

- Test your application against the new release candidates before deploying to production — RC releases are marked prerelease and the maintainers asked for thorough testing.

- If you rely on Firebird 4/5 types (INT128, DECFLOAT, timezone-aware TIME/TIMESTAMP), make sure the corresponding fbclient 4/5 library is installed and found via PATH on your system.

- Audit code that:

  - Expects INT128 as numeric — now strings.

  - Uses ibase_close() expecting refcounted behavior — adapt to immediate close semantics.

  - Fetches TIME values with IBASE_UNIXTIME — expect strings now; update parsing logic.

- Consider setting or reviewing the new INI options:

  - ibase.default_trans_params

  - ibase.default_lock_timeout

- Use the new client-version functions (ibase_get_client_version(), ibase_get_client_major_version(), ibase_get_client_minor_version()) for runtime checks to adapt behavior based on client capabilities.

- Run full test-suite / integration tests focusing on transactions, lock timeouts, date/time handling, and any code interacting with long metadata names.



Here is a one-page compatibility guide you can share with your team listing code snippets to change (e.g., ibase_close migration notes, TIME parsing examples).

 

The Firebird Book — A Gift for Everyone



The Firebird Book, Second Edition is made publicly available via the IBPhoenix digital store. Everyone can download the complete edition free of charge — no strings attached.

If you'd like to support Helen’s legacy and the Firebird community, there is an optional pay‑what‑you‑like contribution. Funds will support the organization of the Helen Borrie Memorial Award, recognizing individuals with sustained contributions to the Firebird project.

Wednesday, April 30, 2025

FirebirdSQL introduces support for Windows ARM64 builds

This FirebirdSQL pull request introduces support for Windows ARM64 builds to the Firebird project. The changes cover updates to build scripts, configuration files, and Visual Studio solution/project files to accommodate ARM64 architecture, ensuring compatibility and enabling compilation and functionality on Windows ARM64 platforms.

SQL-compliant aliases GREATEST and LEAST for the existing MAXVALUE and MINVALUE functions.

This FirebirdSQL pull request introduces SQL-compliant aliases GREATEST and LEAST for the existing MAXVALUE and MINVALUE functions. These aliases align with the SQL:2023 standard and provide a more intuitive and widely recognized syntax. The changes include updates to documentation, keywords, parser tokens, and system function definitions to support these new aliases.

Monday, April 07, 2025

Jaybird 6.0.1 and Jaybird 5.0.7 released

We are happy to announce the release of Jaybird 6.0.1 and Jaybird 5.0.7. Both releases provide a number of performance improvements to blob handling, and some bug fixes.

We plan to offer more blob performance improvements in upcoming releases of Jaybird 5 and 6, for Firebird 5.0.3 and higher (see also New Article: Data access methods used in Firebird).

Friday, April 04, 2025

New FirebirdSQL engine feature : Range-based FOR statement



Here is the description :

"The range-based FOR statement is used to iterate over a range of numeric values. The iteration is performed in increasing order when used with TO clause and in decreasing order when used with DOWNTO clause"

Syntax

[<label> :] 
 FOR <variable> = <initial value> {TO | DOWNTO} <final value> [BY <by value>] DO
          <statement>


Discussion on the Firebird-devel is here
Update: Feature already merged.

Wednesday, February 26, 2025

Firebird 5.0.2 minor release is available

Firebird Project is happy to announce general availability of Firebird 5.0.2 — the latest minor release in the Firebird 5.0 series.

This minor release offers bug fixes as well as a few improvements, please refer to the Release Notes for the full list of changes.

Binary kits for Windows, Linux, MacOS and Android platforms are immediately available for download.

Wednesday, January 29, 2025

Firebird Docker Images Now Under the Firebird Organization

We are pleased to announce the successful migration of Firebird Docker images to their new home:

https://github.com/FirebirdSQL/firebird-docker

The images are now published on Docker Hub at

https://hub.docker.com/r/firebirdsql/firebird

Thanks to Adriano dos Santos Fernandes for his invaluable contributions and improvements throughout this process.

Monday, January 13, 2025

A sad day for the Firebird Project



Helen Borrie, a key figure in the Firebird relational database project and a longtime contributor at IBPhoenix, passed away on January 2, 2025. Her contributions were essential to Firebird’s creation and its development over the past 25 years.

Read the rest of the official announcement


Jaybird 6.0.0 released

We're happy to announce the first release of Jaybird 6, Jaybird 6.0.0.