Hi all,

The change to proxy.py made on the 11th (revision 943) seems to have broken the ProxyTableImpl and ProxyColumnImpl objects... I get a stack overflow as follows:

File "/site-packages/SQLAlchemy-0.91alpha-py2.4.egg/sqlalchemy/ mapping/__init__.py", line 49, in mapper
    return Mapper(class_, table, *args, **params)
File "/site-packages/SQLAlchemy-0.91alpha-py2.4.egg/sqlalchemy/ mapping/mapper.py", line 175, in __init__
    prop.init(key, self)
File "/site-packages/SQLAlchemy-0.91alpha-py2.4.egg/sqlalchemy/ mapping/mapper.py", line 770, in init
    self.do_init(key, parent)
File "/site-packages/SQLAlchemy-0.91alpha-py2.4.egg/sqlalchemy/ mapping/properties.py", line 170, in do_init
    self.secondaryjoin = sql.join(self.target, self.secondary).onclause
File "/site-packages/SQLAlchemy-0.91alpha-py2.4.egg/sqlalchemy/ sql.py", line 41, in join
    return Join(left, right, onclause, **kwargs)
File "/site-packages/SQLAlchemy-0.91alpha-py2.4.egg/sqlalchemy/ sql.py", line 836, in __init__
    self.onclause = self._match_primaries(left, right)
File "/site-packages/SQLAlchemy-0.91alpha-py2.4.egg/sqlalchemy/ sql.py", line 853, in _match_primaries
    if fk.references(primary):
File "/site-packages/SQLAlchemy-0.91alpha-py2.4.egg/sqlalchemy/ schema.py", line 369, in references
    return table._get_col_by_original(self.column) is not None
File "/site-packages/SQLAlchemy-0.91alpha-py2.4.egg/sqlalchemy/ sql.py", line 572, in _get_col_by_original
    return self.original_columns.get(column.original, None)
File "/site-packages/SQLAlchemy-0.91alpha-py2.4.egg/sqlalchemy/ sql.py", line 1080, in _orig_columns
    return self._orig_cols
File "/site-packages/SQLAlchemy-0.91alpha-py2.4.egg/sqlalchemy/ext/ proxy.py", line 123, in __getattr__
    return getattr(self._get_impl(), key)
File "/site-packages/SQLAlchemy-0.91alpha-py2.4.egg/sqlalchemy/ext/ proxy.py", line 115, in _get_impl
    e = self.engine
File "/site-packages/SQLAlchemy-0.91alpha-py2.4.egg/sqlalchemy/ext/ proxy.py", line 123, in __getattr__
    return getattr(self._get_impl(), key)
File "/site-packages/SQLAlchemy-0.91alpha-py2.4.egg/sqlalchemy/ext/ proxy.py", line 115, in _get_impl
    e = self.engine
File "/site-packages/SQLAlchemy-0.91alpha-py2.4.egg/sqlalchemy/ext/ proxy.py", line 123, in __getattr__
    return getattr(self._get_impl(), key)
File "/site-packages/SQLAlchemy-0.91alpha-py2.4.egg/sqlalchemy/ext/ proxy.py", line 115, in _get_impl
    e = self.engine

I think the correct fix is to change the first line of each _get_impl () method from

  e = self.engine

to

  e = self._engine.engine

so that it doesn't go back via __getattr__ again.

Doing that fixes it on my system.

Kind regards,

Alastair.

--
http:/www.alastairs-place.net



-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642
_______________________________________________
Sqlalchemy-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users

Reply via email to