diff options
author | Jason Kirtland <jek@discorporate.us> | 2008-02-05 05:46:33 +0000 |
---|---|---|
committer | Jason Kirtland <jek@discorporate.us> | 2008-02-05 05:46:33 +0000 |
commit | 6d843aeeb2915206e3e80a6b88d9ce8ed068a035 (patch) | |
tree | 87f288a7c9d991ea484aba19d44d885a3af8c523 /lib/sqlalchemy/engine/base.py | |
parent | 6c73fbb4227327335be8f45f4dbf2bccd01d0918 (diff) | |
download | sqlalchemy-6d843aeeb2915206e3e80a6b88d9ce8ed068a035.tar.gz |
- Added free-form `DDL` statements, can be executed standalone or tied to the DDL create/drop lifecycle of Tables and MetaData. [ticket:903]
- Added DDL event hooks, triggers callables before and after create / drop.
Diffstat (limited to 'lib/sqlalchemy/engine/base.py')
-rw-r--r-- | lib/sqlalchemy/engine/base.py | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/sqlalchemy/engine/base.py b/lib/sqlalchemy/engine/base.py index 2bbbf398d..9a7280065 100644 --- a/lib/sqlalchemy/engine/base.py +++ b/lib/sqlalchemy/engine/base.py @@ -917,6 +917,13 @@ class Connection(Connectable): else: self._cursor_execute(context.cursor, context.statement, context.parameters[0], context=context) + def _execute_ddl(self, ddl, params, multiparams): + if params: + schema_item, params = params[0], params[1:] + else: + schema_item = None + return ddl(None, schema_item, self, *params, **multiparams) + def _handle_dbapi_exception(self, e, statement, parameters, cursor): if getattr(self, '_reentrant_error', False): raise exceptions.DBAPIError.instance(None, None, e) @@ -971,6 +978,7 @@ class Connection(Connectable): expression.ClauseElement : execute_clauseelement, Compiled : _execute_compiled, schema.SchemaItem:_execute_default, + schema.DDL: _execute_ddl, str.__mro__[-2] : _execute_text } |