diff options
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 |
