From b6384551d46df94386ff01bf193a43815ed4f1d0 Mon Sep 17 00:00:00 2001 From: Philip Jenvey Date: Tue, 21 Jul 2009 00:47:03 +0000 Subject: [PATCH] ensure _BindParamClause hash codes are unique on Jython fixes #1475 --- lib/sqlalchemy/sql/expression.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/sqlalchemy/sql/expression.py b/lib/sqlalchemy/sql/expression.py index 8cf6109cae..9eb2926e5b 100644 --- a/lib/sqlalchemy/sql/expression.py +++ b/lib/sqlalchemy/sql/expression.py @@ -2121,6 +2121,16 @@ class _BindParamClause(ColumnElement): d['value'] = v return d + def __hash__(self): + """Return a distinct hash code. + + ColumnOperators have special equality comparisons which makes us + rely on _BindParamClauses having unique hash codes for use in + hash-based collections. Stock __hash__ doesn't guarantee unique + values, particularly on platforms with moving GCs. + """ + return id(self) + def __repr__(self): return "_BindParamClause(%r, %r, type_=%r)" % ( self.key, self.value, self.type -- 2.47.3