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/databases | |
| 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/databases')
| -rw-r--r-- | lib/sqlalchemy/databases/oracle.py | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/lib/sqlalchemy/databases/oracle.py b/lib/sqlalchemy/databases/oracle.py index 0197900a5..4def88afa 100644 --- a/lib/sqlalchemy/databases/oracle.py +++ b/lib/sqlalchemy/databases/oracle.py @@ -204,8 +204,10 @@ class OracleExecutionContext(default.DefaultExecutionContext): if self.dialect.auto_setinputsizes: self.set_input_sizes() if self.compiled_parameters is not None and len(self.compiled_parameters) == 1: - for key in self.compiled_parameters[0]: - (bindparam, name, value) = self.compiled_parameters[0].get_parameter(key) + for key in self.compiled.binds: + bindparam = self.compiled.binds[key] + name = self.compiled.bind_names[bindparam] + value = self.compiled_parameters[0][name] if bindparam.isoutparam: dbtype = bindparam.type.dialect_impl(self.dialect).get_dbapi_type(self.dialect.dbapi) if not hasattr(self, 'out_parameters'): @@ -216,9 +218,10 @@ class OracleExecutionContext(default.DefaultExecutionContext): def get_result_proxy(self): if hasattr(self, 'out_parameters'): if self.compiled_parameters is not None and len(self.compiled_parameters) == 1: - for k in self.out_parameters: - type = self.compiled_parameters[0].get_type(k) - self.out_parameters[k] = type.dialect_impl(self.dialect).result_processor(self.dialect)(self.out_parameters[k].getvalue()) + for bind, name in self.compiled.bind_names.iteritems(): + if name in self.out_parameters: + type = bind.type + self.out_parameters[name] = type.dialect_impl(self.dialect).result_processor(self.dialect)(self.out_parameters[name].getvalue()) else: for k in self.out_parameters: self.out_parameters[k] = self.out_parameters[k].getvalue() |
