mirror of
https://github.com/sqlalchemy/sqlalchemy.git
synced 2026-05-09 02:09:53 -04:00
- [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]
This commit is contained in:
+28
-4
@@ -852,9 +852,7 @@ class QueryTest(fixtures.TestBase):
|
||||
result.fetchone
|
||||
)
|
||||
|
||||
def test_result_case_sensitivity(self):
|
||||
"""test name normalization for result sets."""
|
||||
|
||||
def test_row_case_sensitive(self):
|
||||
row = testing.db.execute(
|
||||
select([
|
||||
literal_column("1").label("case_insensitive"),
|
||||
@@ -862,7 +860,33 @@ class QueryTest(fixtures.TestBase):
|
||||
])
|
||||
).first()
|
||||
|
||||
assert row.keys() == ["case_insensitive", "CaseSensitive"]
|
||||
eq_(row.keys(), ["case_insensitive", "CaseSensitive"])
|
||||
eq_(row["case_insensitive"], 1)
|
||||
eq_(row["CaseSensitive"], 2)
|
||||
|
||||
assert_raises(
|
||||
KeyError,
|
||||
lambda: row["Case_insensitive"]
|
||||
)
|
||||
assert_raises(
|
||||
KeyError,
|
||||
lambda: row["casesensitive"]
|
||||
)
|
||||
|
||||
def test_row_case_insensitive(self):
|
||||
ins_db = engines.testing_engine(options={"case_sensitive":False})
|
||||
row = ins_db.execute(
|
||||
select([
|
||||
literal_column("1").label("case_insensitive"),
|
||||
literal_column("2").label("CaseSensitive")
|
||||
])
|
||||
).first()
|
||||
|
||||
eq_(row.keys(), ["case_insensitive", "CaseSensitive"])
|
||||
eq_(row["case_insensitive"], 1)
|
||||
eq_(row["CaseSensitive"], 2)
|
||||
eq_(row["Case_insensitive"],1)
|
||||
eq_(row["casesensitive"],2)
|
||||
|
||||
|
||||
def test_row_as_args(self):
|
||||
|
||||
Reference in New Issue
Block a user