[storm] Firebird backend

Gustavo Niemeyer gustavo at niemeyer.net
Fri Aug 3 13:15:58 BST 2007

Hey Moshe,

> Here is my firebird backend for review.

For people not following the IRC channel, we've been discussing
the Firebird support online in the last few days.

> Along with coding style stuff and silly bugs, I'd like to know if:
> the CAST problem is solved in an acceptable way, I have doubted
> between the current @compile.when(MightCast) and multiple
> @compile.when(datatype) functions.

I belive the later would be more adequate in this case.  You can
verify if state.context is COLUMN, and then do the cast only in
these cases.

Also related, we should have tests for each of these types to
ensure that they're working correctly.  The INT_64 one seems
to be failing, for instance.

> The URI resolver has no magic to discover absolute/relative database
> paths.  For example: the database foobar.gdb in the root of the
> filesystem has to be accesed with
> firebird://u:p@localhost//foobar.fdb, not
> firebird://u:p@localhost/foobar.fdb but
> firebird://u:p@localhost/foobar.fdb is good for whatever foobar.fdb is
> the alias for (configured in firebird's aliases.conf).  Does someone
> know a good way to make this behave less weird?

I don't understand what you're looking for here.  It seems to do
the right thing already.

> test_execute_expression_datatypes and
> test_execute_expression_multiple_values might be added as generic
> tests, I suppose other backends can pass these easily.
> backend.py should be: storm/databases/firebird.py
> database_test.py should be: tests/databases/firebird.py
> store_test.py should be: tests/store/firebird.py
> now, fire away with complaints ;-)

Moshe has pushed a branch to the following URL:


I've opened a bug to track development and reviews at:


Gustavo Niemeyer

More information about the storm mailing list