summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/sql
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2021-03-19 01:18:06 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2021-03-19 01:19:32 -0400
commite67d1b79c544c14f375dff90b5d8af5b472c053e (patch)
tree177d6959aaf1560e8a4cadc81fe8117c5ee27636 /lib/sqlalchemy/sql
parentd0812a1abf903f6b5f1a0bfb19f8c87a665f8309 (diff)
downloadsqlalchemy-e67d1b79c544c14f375dff90b5d8af5b472c053e.tar.gz
Deannoate functions before matching .__class__
Fixed regression where the SQL compilation of a :class:`.Function` would not work correctly if the object had been "annotated", which is an internal memoization process used mostly by the ORM. In particular it could affect ORM lazy loads which make greater use of this feature in 1.4. Fixes: #6095 Change-Id: I7a6527df651f440a04d911ba78ee0b0dd4436dcd
Diffstat (limited to 'lib/sqlalchemy/sql')
-rw-r--r--lib/sqlalchemy/sql/compiler.py2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/sqlalchemy/sql/compiler.py b/lib/sqlalchemy/sql/compiler.py
index 0ea251fb4..276209103 100644
--- a/lib/sqlalchemy/sql/compiler.py
+++ b/lib/sqlalchemy/sql/compiler.py
@@ -1720,7 +1720,7 @@ class SQLCompiler(Compiled):
if disp:
text = disp(func, **kwargs)
else:
- name = FUNCTIONS.get(func.__class__, None)
+ name = FUNCTIONS.get(func._deannotate().__class__, None)
if name:
if func._has_args:
name += "%(expr)s"