Skip to content

Firebird support#18

Merged
Maxteabag merged 12 commits intoMaxteabag:mainfrom
kgaughan:firebird
Dec 21, 2025
Merged

Firebird support#18
Maxteabag merged 12 commits intoMaxteabag:mainfrom
kgaughan:firebird

Conversation

@kgaughan
Copy link
Copy Markdown
Contributor

@kgaughan kgaughan commented Dec 19, 2025

Hi! This adds support for FirebirdSQL. I think I've covered everything that's required to support it, but if there's anything I've missed, I'm happy to add it.

The test suite runs slower than I'd like on my own laptop for reasons I can't quite identify, but it all passes. I don't see any comparable slowness when using it interactively versus the PostgreSQL adapter, and I've ruled out my selection of a pure-Python driver as the reason for the slowness by comparing pyfirebirdsql with firebird-driver, and both perform about as well. I'll see if I can do some extra profiling to figure out why it's so slow. It could just be some extra overhead I'm somehow accidentally introducing in how I'm running the test suite. It looks like the slowness is down to sleeps elsewhere in the test suite: I'd only been running the Firebird integration tests and not any of the others. It's no slower than SQLite, which ought to have been very fast.

To do:

  • Sequences ('generators' in Firebird parlance)
  • Triggers
  • Indexes

@kgaughan
Copy link
Copy Markdown
Contributor Author

It now includes support for sequences, triggers, and indexes.

Copy link
Copy Markdown
Owner

@Maxteabag Maxteabag left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR! I pulled it and ran some tests. Found a few issues (missing space in SQL on line 162, cursor.execute() should be cursor.fetchone() on line 226). I've written integration tests that catch these. I am pushing the integration tests into main now. Let me know if you'd like to fix them.

The integration tests will catch some get definition bugs. The changes will include a new property "test_query" on the adapters. Firebird could have for example "SELECT 1 FROM RDB$DATABASE"

Also firebird should be added to docker_detector.py.
Right now the docker discovery tool will not find it.

@kgaughan
Copy link
Copy Markdown
Contributor Author

I've rebased my branch locally on your new main branch and I'll check if there are any additional fixes needed.

@kgaughan kgaughan requested a review from Maxteabag December 21, 2025 13:11
@kgaughan
Copy link
Copy Markdown
Contributor Author

OK, that should be everything fixed now.

@Maxteabag Maxteabag merged commit 35d8ba5 into Maxteabag:main Dec 21, 2025
20 checks passed
@kgaughan kgaughan deleted the firebird branch December 21, 2025 13:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants