From 73f145dc0e725d8aa7eb47429a89fbc448f97414 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Tue, 3 Oct 2006 21:47:48 +0000 Subject: - added auto_setinputsizes=False to oracle dialect. if true, all executions will get setinputsizes called ahead of time. - some tweaks to the types unittest for oracle. oracle types still need lots more work. --- lib/sqlalchemy/databases/oracle.py | 6 ++++-- lib/sqlalchemy/engine/default.py | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) (limited to 'lib/sqlalchemy') diff --git a/lib/sqlalchemy/databases/oracle.py b/lib/sqlalchemy/databases/oracle.py index 620a5abd6..db82e3dea 100644 --- a/lib/sqlalchemy/databases/oracle.py +++ b/lib/sqlalchemy/databases/oracle.py @@ -132,10 +132,11 @@ def descriptor(): class OracleExecutionContext(default.DefaultExecutionContext): def pre_exec(self, engine, proxy, compiled, parameters): super(OracleExecutionContext, self).pre_exec(engine, proxy, compiled, parameters) - #self.set_input_sizes(proxy(), parameters) + if self.dialect.auto_setinputsizes: + self.set_input_sizes(proxy(), parameters) class OracleDialect(ansisql.ANSIDialect): - def __init__(self, use_ansi=True, module=None, threaded=True, **kwargs): + def __init__(self, use_ansi=True, auto_setinputsizes=False, module=None, threaded=True, **kwargs): self.use_ansi = use_ansi self.threaded = threaded if module is None: @@ -143,6 +144,7 @@ class OracleDialect(ansisql.ANSIDialect): else: self.module = module self.supports_timestamp = hasattr(self.module, 'TIMESTAMP' ) + self.auto_setinputsizes = auto_setinputsizes ansisql.ANSIDialect.__init__(self, **kwargs) def dbapi(self): diff --git a/lib/sqlalchemy/engine/default.py b/lib/sqlalchemy/engine/default.py index 4a3791c35..ea542fe5b 100644 --- a/lib/sqlalchemy/engine/default.py +++ b/lib/sqlalchemy/engine/default.py @@ -174,14 +174,14 @@ class DefaultExecutionContext(base.ExecutionContext): plist = [parameters] if self.dialect.positional: inputsizes = [] - for params in plist[0]: + for params in plist[0:1]: 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 params in plist[0:1]: for key in params.keys(): typeengine = params.binds[key].type inputsizes[key] = typeengine.get_dbapi_type(self.dialect.module) -- cgit v1.2.1