diff options
-rw-r--r-- | CHANGES | 3 | ||||
-rw-r--r-- | lib/sqlalchemy/sql.py | 2 | ||||
-rw-r--r-- | test/sql/select.py | 6 |
3 files changed, 10 insertions, 1 deletions
@@ -15,6 +15,9 @@ - default "timezone" setting is now False. this corresponds to Python's datetime behavior as well as Postgres' timestamp/time types (which is the only timezone-sensitive dialect at the moment) [ticket:414] + - the "op()" function is now treated as an "operation", rather than a "comparison". + the difference is, an operation produces a BinaryExpression from which further operations + can occur whereas comparison produces the more restrictive BooleanExpression - firebird: - order of constraint creation puts primary key first before all other constraints; required for firebird, not a bad idea for others [ticket:408] diff --git a/lib/sqlalchemy/sql.py b/lib/sqlalchemy/sql.py index 98191552b..f6e23d583 100644 --- a/lib/sqlalchemy/sql.py +++ b/lib/sqlalchemy/sql.py @@ -562,7 +562,7 @@ class _CompareMixin(object): def between(self, cleft, cright): return _BooleanExpression(self, and_(self._check_literal(cleft), self._check_literal(cright)), 'BETWEEN') def op(self, operator): - return lambda other: self._compare(operator, other) + return lambda other: self._operate(operator, other) # and here come the math operators: def __add__(self, other): return self._operate('+', other) diff --git a/test/sql/select.py b/test/sql/select.py index 5d91276e2..f11736652 100644 --- a/test/sql/select.py +++ b/test/sql/select.py @@ -220,6 +220,12 @@ sq.myothertable_othername AS sq_myothertable_othername FROM (" + sqstring + ") A literal("a") + literal("b") * literal("c"), ":literal + (:liter_1 * :liter_2)" ) + # test the op() function, also that its results are further usable in expressions + self.runtest( + table1.select(table1.c.myid.op('hoho')(12)==14), + "SELECT mytable.myid, mytable.name, mytable.description FROM mytable WHERE (mytable.myid hoho :mytable_myid) = :literal" + ) + def testunicodestartswith(self): string = u"hi \xf6 \xf5" self.runtest( |