summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/sqlalchemy/databases/firebird.py6
-rw-r--r--test/dialect/firebird.py8
2 files changed, 10 insertions, 4 deletions
diff --git a/lib/sqlalchemy/databases/firebird.py b/lib/sqlalchemy/databases/firebird.py
index 5316f528d..7580a750a 100644
--- a/lib/sqlalchemy/databases/firebird.py
+++ b/lib/sqlalchemy/databases/firebird.py
@@ -354,11 +354,11 @@ class FBCompiler(compiler.DefaultCompiler):
else:
return self.process(alias.original, **kwargs)
- def visit_function(self, func):
+ def apply_function_parens(self, func):
if func.clauses:
- return super(FBCompiler, self).visit_function(func)
+ return super(FBCompiler, self).apply_function_parens(func)
else:
- return func.name
+ return False
def default_from(self):
return " FROM rdb$database"
diff --git a/test/dialect/firebird.py b/test/dialect/firebird.py
index 987507306..daf2abba6 100644
--- a/test/dialect/firebird.py
+++ b/test/dialect/firebird.py
@@ -20,6 +20,12 @@ class CompileTest(SQLCompileTest):
s = select([t.alias()])
self.assert_compile(s, "SELECT sometable_1.col1, sometable_1.col2 FROM sometable sometable_1")
-
+ def test_function(self):
+ self.assert_compile(func.foo(1, 2), "foo(:foo, :foo_1)")
+ self.assert_compile(func.current_time(), "current_time")
+ self.assert_compile(func.foo(), "foo")
+ t = table('sometable', column('col1'), column('col2'))
+ self.assert_compile(select([func.max(t.c.col1)]), "SELECT max(sometable.col1) FROM sometable")
+
if __name__ == '__main__':
testbase.main()