diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-11-05 19:23:08 +0000 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-11-05 19:23:08 +0000 |
| commit | 5a70cb7fa5345696731eac48958bee804f241df3 (patch) | |
| tree | 86752660ec681ca9fc0490cf6e67f9d3485a7fe3 /lib/sqlalchemy/engine | |
| parent | 00c2077cbcddcbe22c8f356dd5b0a61a55d71186 (diff) | |
| download | sqlalchemy-5a70cb7fa5345696731eac48958bee804f241df3.tar.gz | |
- adjustments to oracle ROWID logic...recent oid changes mean we have to
use "rowid" against the select itself (i.e. its just...'rowid', no table name).
seems to work OK but not sure if issues will arise
- fixes to oracle bind param stuff to account for recent removal of ClauseParameters object.
Diffstat (limited to 'lib/sqlalchemy/engine')
| -rw-r--r-- | lib/sqlalchemy/engine/default.py | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/lib/sqlalchemy/engine/default.py b/lib/sqlalchemy/engine/default.py index 771ca06f9..198f6742b 100644 --- a/lib/sqlalchemy/engine/default.py +++ b/lib/sqlalchemy/engine/default.py @@ -311,24 +311,26 @@ class DefaultExecutionContext(base.ExecutionContext): from the bind parameter's ``TypeEngine`` objects. """ - plist = self.compiled_parameters + types = dict([ + (self.compiled.bind_names[bindparam], bindparam.type) + for bindparam in self.compiled.bind_names + ]) + if self.dialect.positional: inputsizes = [] - for params in plist[0:1]: - for key in params.positional: - typeengine = params.get_type(key) - dbtype = typeengine.dialect_impl(self.dialect).get_dbapi_type(self.dialect.dbapi) - if dbtype is not None: - inputsizes.append(dbtype) + for key in self.compiled.positiontup: + typeengine = types[key] + dbtype = typeengine.dialect_impl(self.dialect).get_dbapi_type(self.dialect.dbapi) + if dbtype is not None: + inputsizes.append(dbtype) self.cursor.setinputsizes(*inputsizes) else: inputsizes = {} - for params in plist[0:1]: - for key in params.keys(): - typeengine = params.get_type(key) - dbtype = typeengine.dialect_impl(self.dialect).get_dbapi_type(self.dialect.dbapi) - if dbtype is not None: - inputsizes[key.encode(self.dialect.encoding)] = dbtype + for key in self.compiled.bind_names.values(): + typeengine = types[key] + dbtype = typeengine.dialect_impl(self.dialect).get_dbapi_type(self.dialect.dbapi) + if dbtype is not None: + inputsizes[key.encode(self.dialect.encoding)] = dbtype self.cursor.setinputsizes(**inputsizes) def __process_defaults(self): |
