diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2006-10-03 21:08:14 +0000 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2006-10-03 21:08:14 +0000 |
| commit | c28bd008dd6710b941f3841d5b8c1624eddd32d2 (patch) | |
| tree | 81ca2cbb2a3ef6362e049f3275c41936bb7fe593 /lib/sqlalchemy/engine/default.py | |
| parent | beff0e1e132e8005611ed4d3f07955252a7e8d72 (diff) | |
| download | sqlalchemy-c28bd008dd6710b941f3841d5b8c1624eddd32d2.tar.gz | |
- removed "extension()" MapperOption
- TypeEngine objects can report on DBAPI types
- added set_input_sizes() to default dialect
- oracle dialect gets Timestamp type added, may need to call
set_input_sizes() to make it work with sub-second resolution [ticket:304]
Diffstat (limited to 'lib/sqlalchemy/engine/default.py')
| -rw-r--r-- | lib/sqlalchemy/engine/default.py | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/lib/sqlalchemy/engine/default.py b/lib/sqlalchemy/engine/default.py index dd9a0d278..4a3791c35 100644 --- a/lib/sqlalchemy/engine/default.py +++ b/lib/sqlalchemy/engine/default.py @@ -164,6 +164,29 @@ class DefaultExecutionContext(base.ExecutionContext): return self._last_updated_params def lastrow_has_defaults(self): return self._lastrow_has_defaults + def set_input_sizes(self, cursor, parameters): + """given a cursor and ClauseParameters, call the appropriate style of + setinputsizes() on the cursor, using DBAPI types from the bind parameter's + TypeEngine objects.""" + if isinstance(parameters, list): + plist = parameters + else: + plist = [parameters] + if self.dialect.positional: + inputsizes = [] + for params in plist[0]: + for key in params.positional: + typeengine = params.binds[key].type + inputsizes.append(typeengine.get_dbapi_type(self.dialect.module)) + cursor.setinputsizes(*inputsizes) + else: + inputsizes = {} + for params in plist[0]: + for key in params.keys(): + typeengine = params.binds[key].type + inputsizes[key] = typeengine.get_dbapi_type(self.dialect.module) + cursor.setinputsizes(**inputsizes) + def _process_defaults(self, engine, proxy, compiled, parameters): """INSERT and UPDATE statements, when compiled, may have additional columns added to their VALUES and SET lists corresponding to column defaults/onupdates that are present on the |
