From: Mike Bayer Date: Wed, 6 Feb 2008 17:44:48 +0000 (+0000) Subject: check for unicode first before encoding X-Git-Tag: rel_0_4_3~33 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6e498f1a21826ed2070543414ee633526bd126fc;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git check for unicode first before encoding --- diff --git a/lib/sqlalchemy/engine/base.py b/lib/sqlalchemy/engine/base.py index 1a13fdeeb8..f426d93a66 100644 --- a/lib/sqlalchemy/engine/base.py +++ b/lib/sqlalchemy/engine/base.py @@ -1825,7 +1825,7 @@ class DefaultRunner(schema.SchemaVisitor): """execute a string statement, using the raw cursor, and return a scalar result.""" conn = self.context._connection - if not self.dialect.supports_unicode_statements: + if isinstance(stmt, unicode) and not self.dialect.supports_unicode_statements: stmt = stmt.encode(self.dialect.encoding) conn._cursor_execute(self.context.cursor, stmt, params) return self.context.cursor.fetchone()[0] diff --git a/lib/sqlalchemy/engine/default.py b/lib/sqlalchemy/engine/default.py index 3b93862aeb..5c6a67b280 100644 --- a/lib/sqlalchemy/engine/default.py +++ b/lib/sqlalchemy/engine/default.py @@ -185,7 +185,7 @@ class DefaultExecutionContext(base.ExecutionContext): self.result_map = None self.parameters = self.__encode_param_keys(parameters) self.executemany = len(parameters) > 1 - if not dialect.supports_unicode_statements: + if isinstance(statement, unicode) and not dialect.supports_unicode_statements: self.statement = statement.encode(self.dialect.encoding) else: self.statement = statement