Laravel-Firebird (Benson Fork)

TL;DR

We started from an already working, mature Firebird driver for Laravel and brought it to real parity with the first-party drivers (MySQL, PostgreSQL, SQL Server). The result: from an estimated ~51% to ~96% functional parity, 216 tests running against Firebird 3, 4 and 5 (dialects 1 and 3), ~87% line coverage, and a green CI across the whole matrix (PHP 8.3/8.4 × Firebird 3/4/5).

This write-up is for people who live and breathe Firebird — the details below are engine-specific.

The codebase it builds on

benson/laravel-firebird is a fork of harrygulliford/laravel-firebird, which itself descends from the pioneering jacquestvanzuydam/laravel-firebird. Much of the foundation (query grammar, schema grammar, Eloquent integration, FIRST/SKIP pagination, INSERT ... RETURNING, MERGE-based upsert, join mutations via RDB$DB_KEY) already came from that prior work. What we describe here is the refinement and parity layer we built on top of that base.

Why it matters

Firebird has quirks no generic ORM handles on its own: case-sensitive identifiers when quoted, DATE with no time part in dialect 3, NUMERIC/DECIMAL stored as a scaled integer, no lastInsertId(), dialect 1 without delimited identifiers… each one can become a silent production bug. We tackled them head-on.

Real, Firebird-specific bug fixes

1. Scale loss on DECIMAL/NUMERIC (the nastiest one).
Inserting the PHP integer 40 into a DECIMAL(5,2) column stored 0.40 — off by 100×. Cause: Laravel binds integers with PDO::PARAM_INT, and pdo_firebird treats them as the column’s raw scaled value. We now bind integers as PARAM_STR, and Firebird converts the literal to the column type with the correct scale. Strings, floats, where clauses and booleans stay untouched.

2. dropAllTables() with legacy uppercase names.
Tables created without quotes live in UPPERCASE in the catalog (AUDITORIA). Introspection returned the name lowercased, and DROP TABLE "auditoria" failed with -607 Table does not exist. Dropping now uses the real catalog name, working for lowercase (quoted), UPPERCASE (legacy) and mixed-case tables in the same database.

3. date cast triggering conversion errors.
In dialect 3, DATE has no time. Laravel formats every date as Y-m-d H:i:s, and Firebird rejected it with -413 conversion error from string. We ship a SerializesFirebirdDates trait (and a base model) that stores date columns without the time component while keeping datetime intact — using the cast you already declare.

4. exists() over UNION queries.
FIRST 1 was applied only to the first union branch. We now wrap the query in a derived table before limiting.

Server-version aware features

Read more
1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

Firebird External Table Generator (ext-table-gen) 3.0 released

I am happy to announce the release of version 3.0 of “Firebird External Table Generator” (ext-table-gen for short).

“Firebird External Table Generator” is a commandline tool to transform CSV files to Firebird external table files (a binary format for external table data).

Compared to version 2.0, we added support for more datatypes:

  • Approximate numeric types (binary floating point)
    • float
    • doublePrecision
  • Decimal floating point type:
    • decfloat
  • String types
    • varchar

ext-table-gen 3.0 requires Java 21 or higher.

You can find the 3.0 release at ext-table-gen v3.0.

Documentation and release notes can be found on https://mrotteveel.github.io/ext-table-gen/.

The project itself is hosted on https://github.com/mrotteveel/ext-table-gen.

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)
Loading...

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)
Loading...

Database Workbench 6.10.6 released

Upscene Productions is proud to announce the availability of the next release of the popular multi-DBMS development tool:

“Database Workbench 6.10.6”

This release introduces the Data Type Assistant for quicker table creation, and gives you a new and much faster Report Designer.

📹 Watch a video of the Data Type Assistant here.

Database Workbench supports the following database systems:
Firebird
MySQL, MariaDB
✅ PostgreSQL
SQLite
✅ Oracle
✅ SQL Server
✅ NexusDB
InterBase

It includes tools for database design, database maintenance, testing, data transfer, data import & export, database migration, database compare and numerous other tools.

Read more
1 Star2 Stars3 Stars4 Stars5 Stars (2 votes, average: 5.00 out of 5)
Loading...

TurboBird further development

Mustafa on Firebird-general group : I would like to introduce my continued development of TurboBird. The tool was originally developed by Abdel Azem Motaz, but was discontinued around 2015. I took over the code about a year ago and have been continuously developing, modernizing, and extending it since then.

TurboBird is a Lazarus (FreePascal) project and is currently cross-platform, supporting both Linux and Windows.

🔧 Technical Base / Refactoring

The biggest step was the complete removal of SQLDB:

  • Full migration to IBX
  • No SQLDB used anymore
  • More stable behavior with complex statements / metadata
  • Overall better Firebird compatibility

Additionally, the project now features dynamic loading of Firebird client libraries and parallel use of multiple Firebird versions (2.5 → 6.0) within a single instance. Thanks to IBX, script execution with and without terminators is now possible.

🚀 Performance & Scalability

The TreeView has been completely reworked with Lazy Loading (objects are loaded only when expanded), significantly reducing initial load times. Performance remains stable even with very large catalogs, having been tested with:

  • ~1,000,000 domains
  • ~10,000 packages
  • Several thousand tables

📊 Monitoring / Low-Level Access

The Activity Monitor provides a display of attachments, transactions, and statements, with the ability to directly terminate attachments or statements when necessary.

🔍 Navigation / UI

  • Tree filter: For working efficiently with large databases.
  • Reworked tab system: Movable and more compact.
  • QueryWindow: Code and result views can be maximized independently. The editor is intentionally decoupled from the theme system for more stable rendering.

🧰 Integrated Tools

  • Visual QueryBuilder: Drag & drop functionality to generate SQL.
  • Routine runner: For procedures, functions, UDF, and UDR.
  • DataEditor (formerly CSVEditor): Supports reading, editing, and exporting multiple formats; includes DBReader integration for data recovery.
  • Buildin-Tools menu: For direct access to all integrated utilities.

💾 Backup / Restore

Migration to IBX (Tony Whyman code) has enabled:

  • Server-side restore: Recommended and stable.
  • Client-side restore: Currently with some limitations.
  • Multi-file restore implementation.

📁 Data / Export

  • Export to 14 different formats (including Markdown and HTML).
  • Clipboard export with limits to protect against large datasets.
  • Support for complex data types, including arrays.

🧠 Firebird-specific Features

  • Proper support for case-sensitive identifiers.
  • Correct handling of quoted / unquoted identifiers.
  • Multi-version handling via IBX.
  • Automatic handling for older Firebird versions (e.g., DummyRole).

⚠️ Known Issues

  • Embedded connections: Please consider known limitations.
  • Client-side restore: May be incomplete (server-side recommended).

This is more than just maintenance—it is a large-scale technical refactoring and functional extension. I would be very interested in your feedback, especially regarding tests with different Firebird versions, edge cases, or general ideas.

Best regards,
Mustafa

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

Help Us Test the new Firebird Docker Snapshot Images

We have been working on a significant overhaul of the official firebird-docker images, and a pre-release version is now available for testing at:

👉 Pre-release Container Registry

We would love to get feedback from the community before these changes are merged upstream.


What’s New

Firebird 6 Snapshot Images

The new images include a 6-snapshot tag built daily from the master branch of FirebirdSQL/firebird. This is the first time a Firebird 6 development snapshot has been available as a Docker image.

# Pull the latest Firebird 6 development snapshot
docker pull ghcr.io/fdcastel/firebird:6-snapshot

# Pull the latest Firebird 5 patch snapshot
docker pull ghcr.io/fdcastel/firebird:5-snapshot

Snapshot images are rebuilt daily, so you always get the latest development build.

Expanded Version Coverage

The image matrix has been significantly expanded to cover more versions and distributions:

  • Firebird 3.x: 3.0.8 through 3.0.13 (amd64 only; bookworm, bullseye, jammy)
  • Firebird 4.x: 4.0.0 through 4.0.6 (amd64; bookworm, bullseye, jammy, noble)
  • Firebird 5.x: 5.0.0 through 5.0.3 (amd64 + arm64; bookworm, bullseye, jammy, noble)
  • Firebird 6 snapshot: Daily build from master (amd64 + arm64)
  • Firebird 5 snapshot: Daily build from v5.0-release (amd64 + arm64)

How to Test

Pull the images directly from our pre-release registry to see how they perform in your environment:

Bash

# Latest stable (Firebird 5.0.3 on bookworm)
docker pull ghcr.io/fdcastel/firebird:latest
# Firebird 6 development snapshot ← Most wanted testers here!
docker pull ghcr.io/fdcastel/firebird:6-snapshot
# A specific version + distro
docker pull ghcr.io/fdcastel/firebird:5.0.3-jammy
docker pull ghcr.io/fdcastel/firebird:4.0.6-bookworm

We are especially looking for feedback on:

  • Starting a container and connecting via isql or your preferred driver.
  • ARM64 performance if you have compatible hardware (M-series Macs, Ampere, etc.).
  • Firebird 6 snapshot behavior: Any connection issues, startup errors, or unexpected behavior changes.

⚠️ Important: Pre-Release Notice

These images have not yet been merged into the official repository and may contain bugs. The Firebird 6 snapshot, in particular, is built from unreleased, in-development code.

Warning: Do not use pre-release or snapshot images in production environments. Snapshot tags (6-snapshot, 5-snapshot) are rebuilt daily and do not carry stability guarantees.


Feedback

Your input is vital to making these images solid before the official merge. Please report any issues, successful test results, or suggestions at the upstream pull request:

🔗 GitHub Pull Request #36

Whether it’s a simple “works great on my ARM64 machine” or a detailed bug report, all feedback is welcome.

Thank you for helping us improve the Firebird ecosystem!

— F.D. Castel

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)
Loading...

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)
Loading...

Firebird 5.0.4, Firebird 4.0.7 and Firebird 3.0.14 sub-releases

Firebird Project is happy to announce general availability of Firebird 5.0.4Firebird 4.0.7 and Firebird 3.0.14 sub-releases.

Please refer to their documentation for the full list of changes. Binary kits for Windows, Linux, macOS and Android platforms are immediately available for download:

1 Star2 Stars3 Stars4 Stars5 Stars (3 votes, average: 5.00 out of 5)
Loading...

RDB EXPERT 2026.03

You can join to the Telegram chat for discussion.

RDB Expert has received an update that includes the following:

Added:

  1. “Silent” application installation mode on Linux (using the “–quiet” flag).
  2. Option to automatically expand the connections tree when establishing connection to the database.
  3. Option to recalculate selectivity for the editing index.

Fixed:

  1. Duplicating events in the “Trace Manager” panel.
  2. Saving ER-diagrams with a header block to a file.
  3. Parsing and formatting SQL queries with Q-quoted string literals.
  4. Reloading connections tree when creating/deleting a database index.

View the full list of updates and download

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...

1 2 3 493