diff options
author | Lele Gaifax <lele@metapensiero.it> | 2007-12-12 23:00:42 +0000 |
---|---|---|
committer | Lele Gaifax <lele@metapensiero.it> | 2007-12-12 23:00:42 +0000 |
commit | bdc12f2468c6a227d336208c01a89f31575f1a63 (patch) | |
tree | 9d2855e573b26a6fec50d5c90fcaa69e8e8ff43c /lib/sqlalchemy/databases/firebird.py | |
parent | 6f6a0981351697192651ef7437fdc451c1ad71ab (diff) | |
download | sqlalchemy-bdc12f2468c6a227d336208c01a89f31575f1a63.tar.gz |
Use an external UDF to implement the mod operator under Firebird
Diffstat (limited to 'lib/sqlalchemy/databases/firebird.py')
-rw-r--r-- | lib/sqlalchemy/databases/firebird.py | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/sqlalchemy/databases/firebird.py b/lib/sqlalchemy/databases/firebird.py index 319e46062..59f435c92 100644 --- a/lib/sqlalchemy/databases/firebird.py +++ b/lib/sqlalchemy/databases/firebird.py @@ -10,7 +10,7 @@ import warnings from sqlalchemy import exceptions, pool, schema, types as sqltypes, util from sqlalchemy.engine import base, default -from sqlalchemy.sql import compiler, text +from sqlalchemy.sql import compiler, operators as sqloperators, text _initialized_kb = False @@ -377,6 +377,13 @@ class FBDialect(default.DefaultDialect): class FBCompiler(compiler.DefaultCompiler): """Firebird specific idiosincrasies""" + # Firebird lacks a builtin modulo operator, but there is + # an equivalent function in the ib_udf library. + operators = compiler.DefaultCompiler.operators.copy() + operators.update({ + sqloperators.mod : lambda x, y:"mod(%s, %s)" % (x, y) + }) + def visit_alias(self, alias, asfrom=False, **kwargs): # Override to not use the AS keyword which FB 1.5 does not like if asfrom: |