[Sqlalchemy-tickets] Issue #3485: dont do recursion overflow when FunctionElement type is None (zzz
Brought to you by:
zzzeek
|
From: Mike B. <iss...@bi...> - 2015-07-14 15:08:12
|
New issue 3485: dont do recursion overflow when FunctionElement type is None https://bitbucket.org/zzzeek/sqlalchemy/issues/3485/dont-do-recursion-overflow-when Mike Bayer: ``` #!python from sqlalchemy.sql.functions import FunctionElement from sqlalchemy import Integer from sqlalchemy.ext.compiler import compiles class MissingType(FunctionElement): name = 'mt' type = None class NotMissingType(FunctionElement): name = 'nmt' type = Integer @compiles(NotMissingType) @compiles(MissingType) def _fn(element, compiler, **kw): return element.name print NotMissingType() print MissingType() ``` the second one recursion overflows ``` #! File "/Users/classic/dev/sqlalchemy/lib/sqlalchemy/sql/elements.py", line 722, in __getattr__ return getattr(self.comparator, key) File "/Users/classic/dev/sqlalchemy/lib/sqlalchemy/sql/elements.py", line 722, in __getattr__ return getattr(self.comparator, key) File "/Users/classic/dev/sqlalchemy/lib/sqlalchemy/sql/elements.py", line 722, in __getattr__ return getattr(self.comparator, key) File "/Users/classic/dev/sqlalchemy/lib/sqlalchemy/sql/elements.py", line 722, in __getattr__ return getattr(self.comparator, key) File "/Users/classic/dev/sqlalchemy/lib/sqlalchemy/sql/elements.py", line 722, in __getattr__ return getattr(self.comparator, key) File "/Users/classic/dev/sqlalchemy/lib/sqlalchemy/sql/elements.py", line 722, in __getattr__ return getattr(self.comparator, key) File "/Users/classic/dev/sqlalchemy/lib/sqlalchemy/sql/elements.py", line 722, in __getattr__ return getattr(self.comparator, key) File "/Users/classic/dev/sqlalchemy/lib/sqlalchemy/sql/elements.py", line 722, in __getattr__ return getattr(self.comparator, key) File "/Users/classic/dev/sqlalchemy/lib/sqlalchemy/sql/elements.py", line 722, in __getattr__ return getattr(self.comparator, key) ``` this goes back to at least 0.9 but 1.0.7 is fine |