CAST explodes with recursion limit

Issue #3195 resolved
squeaky created an issue

You are probably meant to always pass one of the classes from sqlalchemy as type parameter. Anyway if you do what I did it it shouldn't explode with recursion limit I guess.

>>> import sqlalchemy
>>> sqlalchemy.__version__
'0.9.7'
>>> sqlalchemy.cast(1, 'text')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/data/venv/local/lib/python2.7/site-packages/sqlalchemy/sql/elements.py", line 542, in __repr__
    friendly = getattr(self, 'description', None)
  File "/data/venv/local/lib/python2.7/site-packages/sqlalchemy/sql/elements.py", line 655, in __getattr__
    return getattr(self.comparator, key)
  File "/data/venv/local/lib/python2.7/site-packages/sqlalchemy/sql/elements.py", line 655, in __getattr__
    return getattr(self.comparator, key)
  File "/data/venv/local/lib/python2.7/site-packages/sqlalchemy/sql/elements.py", line 655, in __getattr__
    return getattr(self.comparator, key)
  File "/data/venv/local/lib/python2.7/site-packages/sqlalchemy/sql/elements.py", line 655, in __getattr__
    return getattr(self.comparator, key)
  File "/data/venv/local/lib/python2.7/site-packages/sqlalchemy/sql/elements.py", line 655, in __getattr__
    return getattr(self.comparator, key)
  File "/data/venv/local/lib/python2.7/site-packages/sqlalchemy/sql/elements.py", line 655, in __getattr__
    return getattr(self.comparator, key)
  File "/data/venv/local/lib/python2.7/site-packages/sqlalchemy/sql/elements.py", line 655, in __getattr__
    return getattr(self.comparator, key)
  File "/data/venv/local/lib/python2.7/site-packages/sqlalchemy/sql/elements.py", line 655, in __getattr__
    return getattr(self.comparator, key)
  File "/data/venv/local/lib/python2.7/site-packages/sqlalchemy/sql/elements.py", line 655, in __getattr__
    return getattr(self.comparator, key)
  File "/data/venv/local/lib/python2.7/site-packages/sqlalchemy/sql/elements.py", line 655, in __getattr__
...
File "/data/venv/local/lib/python2.7/site-packages/sqlalchemy/util/langhelpers.py", line 725, in __get__
    obj.__dict__[self.__name__] = result = self.fget(obj)
RuntimeError: maximum recursion depth exceeded

Comments (3)

  1. Mike Bayer repo owner
    • Fixed bug where a fair number of SQL elements within the sql package would fail to __repr__() successfully, due to a missing description attribute that would then invoke a recursion overflow when an internal AttributeError would then re-invoke __repr__(). fixes #3195

    → <<cset 81d1e0455a40>>

  2. Mike Bayer repo owner
    • Fixed bug where a fair number of SQL elements within the sql package would fail to __repr__() successfully, due to a missing description attribute that would then invoke a recursion overflow when an internal AttributeError would then re-invoke __repr__(). fixes #3195

    → <<cset df63aa87480e>>

  3. Log in to comment