Jira issue originally created by user @beberlei:
Implemented support for Interbase/Firebird dialects
Comment created by ancpru:
I've create a driver (or two) for Firebird.
The development branch is available at
There are two versions of the driver: One is based on the ibase-api, there other on Firebird PDO.
I'd consider the ibase-version as almost finished, the PDO-Version is rather experimental.
Just send me a comment and maybe we can merge it into the official doctrine dbal (propably just the ibase-version, not the PDO-Version - at least not as long the driver problems are not fixed)
I've tested it with FB 2.5, but not with the upcoming FB 3 or Interbase.
The Ibase-Driver passes the complete Doctrine-Testsuite.
The PDO-Version does not, and it has some limitations which may be related to Firebirds PDO interface itself:
One more comment:
I am not sure how to handle one firebird-specificity: Firebird does not preserve the case of identity-names and converts them all-upper, unless they are quoted. The behaviour looks quite similar to Oracle.
Currently I do not normalize names as the Oracle-driver does, which leads to the problem, that they are all-upper in the database anyway, but automatically quoted keywords are lowercase.
Which behaviour would you guys prefere:
Normalize them All-Upper if not quoted (including keywords)? This would allow case-insensitive references in queries, because Firebird handles unquoted names as all-upper.
Quote everything to preserve case: Unfortunately this would require manual quoting in every query.
Personally I do not really like this all-upper-pattern, but having to quote every identifier everywhere looks even more cumbersome, so it's propably the best to follow the behaviour of the oracle driver and assume uppercase if not quoted.
Does any platform have configuration-options? It might be a solution to let the user decide about the naming, e.g.
setNamingConvention(ALLUPPER | PRESERVECASE)
BTW - Is the doctrine-dev mailinglist gone? I wanted to send this there, but it came back with an error.
Is it possible to setup a firebird test environment at travis?
Comment created by Jürgen:
good to hear about your work!
As a long time firebird user I can say that for me it is common to use column names case insensitive. So if you normalize all SQL commands to upper case (except quoted names) is the natural usage in firebird for me.