summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/sql/traversals.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2019-12-20 10:17:17 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2019-12-20 10:17:17 -0500
commite6afc0a8cf7a8fb18855cab9da488a0d48c42386 (patch)
tree031f56fa882b7350059e492a0fc69019fc98530a /lib/sqlalchemy/sql/traversals.py
parent307fae884b4023f3edd9cc504db09d4f2641d201 (diff)
downloadsqlalchemy-e6afc0a8cf7a8fb18855cab9da488a0d48c42386.tar.gz
Ensure comparison includes "don't compare values" feature
upcoming changes for "expanding IN in all cases" and "lambda elements" both rely upon comparisons that work across changing bound values, so commit the testing fixture ahead of time. Additionally, repair the feature itself within traversals. Change-Id: Ie65a512dc64745614180da77435f9f745ce78c71
Diffstat (limited to 'lib/sqlalchemy/sql/traversals.py')
-rw-r--r--lib/sqlalchemy/sql/traversals.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/sqlalchemy/sql/traversals.py b/lib/sqlalchemy/sql/traversals.py
index b5701dbdf..84a5623d3 100644
--- a/lib/sqlalchemy/sql/traversals.py
+++ b/lib/sqlalchemy/sql/traversals.py
@@ -743,6 +743,14 @@ class TraversalComparatorStrategy(InternalTraversal, util.MemoizedSlots):
else:
return COMPARE_FAILED
+ def compare_bindparam(self, left, right, **kw):
+ compare_values = kw.pop("compare_values", True)
+ if compare_values:
+ return []
+ else:
+ # this means, "skip these, we already compared"
+ return ["callable", "value"]
+
class ColIdentityComparatorStrategy(TraversalComparatorStrategy):
def compare_column_element(