From: Mike Bayer Date: Sun, 23 Oct 2011 16:02:58 +0000 (-0400) Subject: - Cls.column.collate("some collation") now X-Git-Tag: rel_0_7_4~76 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=408c1899956cb860badc6be106c7db81ad645247;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - Cls.column.collate("some collation") now works. [ticket:1776] Also in 0.6.9 --- diff --git a/CHANGES b/CHANGES index 7d1f40f383..7dea5bae31 100644 --- a/CHANGES +++ b/CHANGES @@ -15,6 +15,8 @@ CHANGES - Added missing comma to PASSIVE_RETURN_NEVER_SET symbol [ticket:2304] + - Cls.column.collate("some collation") now + works. [ticket:1776] Also in 0.6.9 0.7.3 ===== diff --git a/lib/sqlalchemy/sql/operators.py b/lib/sqlalchemy/sql/operators.py index db6c40e9a5..2fd4d2b9a1 100644 --- a/lib/sqlalchemy/sql/operators.py +++ b/lib/sqlalchemy/sql/operators.py @@ -453,14 +453,14 @@ def as_(): def exists(): raise NotImplementedError() -def is_(): - raise NotImplementedError() +def is_(a, b): + return a.is_(b) -def isnot(): - raise NotImplementedError() +def isnot(a, b): + return a.isnot(b) -def collate(): - raise NotImplementedError() +def collate(a, b): + return a.collate(b) def op(a, opstring, b): return a.op(opstring)(b) diff --git a/test/orm/test_query.py b/test/orm/test_query.py index fc3bb44222..25ab1a29d6 100644 --- a/test/orm/test_query.py +++ b/test/orm/test_query.py @@ -2,7 +2,7 @@ from test.lib.testing import eq_, assert_raises, assert_raises_message import operator from sqlalchemy import MetaData, null, exists, text, union, literal, \ literal_column, func, between, Unicode, desc, and_, bindparam, \ - select, distinct, or_ + select, distinct, or_, collate from sqlalchemy import exc as sa_exc, util from sqlalchemy.sql import compiler, table, column from sqlalchemy.sql import expression @@ -718,6 +718,15 @@ class OperatorTest(QueryTest, AssertsCompiledSQL): self._test(User.id.between('a', 'b'), "users.id BETWEEN :id_1 AND :id_2") + def test_collate(self): + User = self.classes.User + + self._test(collate(User.id, 'binary'), + "users.id COLLATE binary") + + self._test(User.id.collate('binary'), + "users.id COLLATE binary") + def test_selfref_between(self): User = self.classes.User