summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/dialects/firebird/base.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2009-10-15 16:09:59 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2009-10-15 16:09:59 +0000
commitbc351a2dc423987f05f4bf88db4987be507ee0a1 (patch)
tree9f6f8c8ab74abfa8d2d03690178693d0412ca462 /lib/sqlalchemy/dialects/firebird/base.py
parentad89932715193275d37b5e22b830f092e350b1fe (diff)
downloadsqlalchemy-bc351a2dc423987f05f4bf88db4987be507ee0a1.tar.gz
- DefaultRunner and subclasses have been removed. The job
of this object has been simplified and moved into ExecutionContext. Dialects which support sequences should add a `fire_sequence()` method to their execution context implementation. [ticket:1566]
Diffstat (limited to 'lib/sqlalchemy/dialects/firebird/base.py')
-rw-r--r--lib/sqlalchemy/dialects/firebird/base.py23
1 files changed, 11 insertions, 12 deletions
diff --git a/lib/sqlalchemy/dialects/firebird/base.py b/lib/sqlalchemy/dialects/firebird/base.py
index 5cc837848..4d081025e 100644
--- a/lib/sqlalchemy/dialects/firebird/base.py
+++ b/lib/sqlalchemy/dialects/firebird/base.py
@@ -72,6 +72,7 @@ from sqlalchemy.sql import expression
from sqlalchemy.engine import base, default, reflection
from sqlalchemy.sql import compiler
+
from sqlalchemy.types import (BIGINT, BLOB, BOOLEAN, CHAR, DATE,
FLOAT, INTEGER, NUMERIC, SMALLINT,
TEXT, TIME, TIMESTAMP, VARCHAR)
@@ -176,6 +177,8 @@ class FBTypeCompiler(compiler.GenericTypeCompiler):
return "BLOB SUB_TYPE 0"
+
+
class FBCompiler(sql.compiler.SQLCompiler):
"""Firebird specific idiosincrasies"""
@@ -280,16 +283,6 @@ class FBDDLCompiler(sql.compiler.DDLCompiler):
return "DROP GENERATOR %s" % self.preparer.format_sequence(drop.element)
-class FBDefaultRunner(base.DefaultRunner):
- """Firebird specific idiosincrasies"""
-
- def visit_sequence(self, seq):
- """Get the next value from the sequence using ``gen_id()``."""
-
- return self.execute_string("SELECT gen_id(%s, 1) FROM rdb$database" % \
- self.dialect.identifier_preparer.format_sequence(seq))
-
-
class FBIdentifierPreparer(sql.compiler.IdentifierPreparer):
"""Install Firebird specific reserved words."""
@@ -298,7 +291,13 @@ class FBIdentifierPreparer(sql.compiler.IdentifierPreparer):
def __init__(self, dialect):
super(FBIdentifierPreparer, self).__init__(dialect, omit_schema=True)
+class FBExecutionContext(default.DefaultExecutionContext):
+ def fire_sequence(self, seq):
+ """Get the next value from the sequence using ``gen_id()``."""
+ return self._execute_scalar("SELECT gen_id(%s, 1) FROM rdb$database" % \
+ self.dialect.identifier_preparer.format_sequence(seq))
+
class FBDialect(default.DefaultDialect):
"""Firebird dialect"""
@@ -316,10 +315,10 @@ class FBDialect(default.DefaultDialect):
statement_compiler = FBCompiler
ddl_compiler = FBDDLCompiler
- defaultrunner = FBDefaultRunner
preparer = FBIdentifierPreparer
type_compiler = FBTypeCompiler
-
+ execution_ctx_cls = FBExecutionContext
+
colspecs = colspecs
ischema_names = ischema_names