diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2009-10-15 16:09:59 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2009-10-15 16:09:59 +0000 |
commit | bc351a2dc423987f05f4bf88db4987be507ee0a1 (patch) | |
tree | 9f6f8c8ab74abfa8d2d03690178693d0412ca462 /lib/sqlalchemy/dialects/firebird/base.py | |
parent | ad89932715193275d37b5e22b830f092e350b1fe (diff) | |
download | sqlalchemy-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.py | 23 |
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 |