summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/engine/default.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2012-04-24 16:03:00 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2012-04-24 16:03:00 -0400
commit87bbba32bc54fa0253e9c81663df669dc355f5da (patch)
treeb0b59e889ec323a5f0b4bb58de752facb7dcd38e /lib/sqlalchemy/engine/default.py
parenta66861031a85063c9de8874559815f7ee0bab998 (diff)
downloadsqlalchemy-87bbba32bc54fa0253e9c81663df669dc355f5da.tar.gz
- [feature] The behavior of column targeting
in result sets is now case sensitive by default. SQLAlchemy for many years would run a case-insensitive conversion on these values, probably to alleviate early case sensitivity issues with dialects like Oracle and Firebird. These issues have been more cleanly solved in more modern versions so the performance hit of calling lower() on identifiers is removed. The case insensitive comparisons can be re-enabled by setting "case_insensitive=False" on create_engine(). [ticket:2423]
Diffstat (limited to 'lib/sqlalchemy/engine/default.py')
-rw-r--r--lib/sqlalchemy/engine/default.py3
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/sqlalchemy/engine/default.py b/lib/sqlalchemy/engine/default.py
index d0cbe871f..1f72d005d 100644
--- a/lib/sqlalchemy/engine/default.py
+++ b/lib/sqlalchemy/engine/default.py
@@ -105,6 +105,7 @@ class DefaultDialect(base.Dialect):
def __init__(self, convert_unicode=False, assert_unicode=False,
encoding='utf-8', paramstyle=None, dbapi=None,
implicit_returning=None,
+ case_sensitive=True,
label_length=None, **kwargs):
if not getattr(self, 'ported_sqla_06', True):
@@ -139,6 +140,8 @@ class DefaultDialect(base.Dialect):
self.identifier_preparer = self.preparer(self)
self.type_compiler = self.type_compiler(self)
+ self.case_sensitive = case_sensitive
+
if label_length and label_length > self.max_identifier_length:
raise exc.ArgumentError(
"Label length of %d is greater than this dialect's"