summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/engine/default.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2013-04-27 20:38:53 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2013-04-27 20:38:53 -0400
commitc926f0a9d8910c67554f053ed0f7902542679f0d (patch)
tree85db2c4de6f43e4eee491b58b60e233b6b20a16e /lib/sqlalchemy/engine/default.py
parent2709ae46884f405d95dc16be0667a6cbbebcfb69 (diff)
downloadsqlalchemy-c926f0a9d8910c67554f053ed0f7902542679f0d.tar.gz
plugging away
Diffstat (limited to 'lib/sqlalchemy/engine/default.py')
-rw-r--r--lib/sqlalchemy/engine/default.py53
1 files changed, 23 insertions, 30 deletions
diff --git a/lib/sqlalchemy/engine/default.py b/lib/sqlalchemy/engine/default.py
index 9dda6d81e..e52aac427 100644
--- a/lib/sqlalchemy/engine/default.py
+++ b/lib/sqlalchemy/engine/default.py
@@ -57,18 +57,16 @@ class DefaultDialect(interfaces.Dialect):
# *not* the FLOAT type however.
supports_native_decimal = False
-# start Py3K
- supports_unicode_statements = True
- supports_unicode_binds = True
- returns_unicode_strings = True
- description_encoding = None
-# end Py3K
-# start Py2K
-# supports_unicode_statements = False
-# supports_unicode_binds = False
-# returns_unicode_strings = False
-# description_encoding = 'use_encoding'
-# end Py2K
+ if util.py3k:
+ supports_unicode_statements = True
+ supports_unicode_binds = True
+ returns_unicode_strings = True
+ description_encoding = None
+ else:
+ supports_unicode_statements = False
+ supports_unicode_binds = False
+ returns_unicode_strings = False
+ description_encoding = 'use_encoding'
name = 'default'
@@ -202,15 +200,10 @@ class DefaultDialect(interfaces.Dialect):
return None
def _check_unicode_returns(self, connection):
-# start Py2K
-# if self.supports_unicode_statements:
-# cast_to = unicode
-# else:
-# cast_to = str
-# end Py2K
-# start Py3K
- cast_to = str
-# end Py3K
+ if util.py2k and not self.supports_unicode_statements:
+ cast_to = util.binary_type
+ else:
+ cast_to = util.text_type
def check_unicode(formatstr, type_):
cursor = connection.connection.cursor()
@@ -219,8 +212,8 @@ class DefaultDialect(interfaces.Dialect):
cursor.execute(
cast_to(
expression.select(
- [expression.cast(
- expression.literal_column(
+ [expression.cast(
+ expression.literal_column(
"'test %s returns'" % formatstr),
type_)
]).compile(dialect=self)
@@ -228,7 +221,7 @@ class DefaultDialect(interfaces.Dialect):
)
row = cursor.fetchone()
- return isinstance(row[0], str)
+ return isinstance(row[0], util.string_types)
except self.dbapi.Error as de:
util.warn("Exception attempting to "
"detect unicode returns: %r" % de)
@@ -375,10 +368,10 @@ class DefaultExecutionContext(interfaces.ExecutionContext):
self.execution_options.update(connection._execution_options)
if not dialect.supports_unicode_statements:
- self.unicode_statement = str(compiled)
+ self.unicode_statement = util.text_type(compiled)
self.statement = dialect._encoder(self.unicode_statement)[0]
else:
- self.statement = self.unicode_statement = str(compiled)
+ self.statement = self.unicode_statement = util.text_type(compiled)
self.cursor = self.create_cursor()
self.compiled_parameters = []
@@ -416,7 +409,7 @@ class DefaultExecutionContext(interfaces.ExecutionContext):
self.result_map = compiled.result_map
- self.unicode_statement = str(compiled)
+ self.unicode_statement = util.text_type(compiled)
if not dialect.supports_unicode_statements:
self.statement = self.unicode_statement.encode(
self.dialect.encoding)
@@ -521,7 +514,7 @@ class DefaultExecutionContext(interfaces.ExecutionContext):
self.executemany = len(parameters) > 1
if not dialect.supports_unicode_statements and \
- isinstance(statement, str):
+ isinstance(statement, util.text_type):
self.unicode_statement = statement
self.statement = dialect._encoder(statement)[0]
else:
@@ -575,8 +568,8 @@ class DefaultExecutionContext(interfaces.ExecutionContext):
"""
conn = self.root_connection
- if isinstance(stmt, str) and \
- not self.dialect.supports_unicode_statements:
+ if isinstance(stmt, util.text_type) and \
+ not self.dialect.supports_unicode_statements:
stmt = self.dialect._encoder(stmt)[0]
if self.dialect.positional: