On 22 Jun 2006 at 23:44, Michael Bayer wrote: > a lot has changed with mapper initialization (and plenty of > bugs....), but not tables. can you send a test example ?
Sorry my example was not clear. the variable is called 'table' in my module, but it is a mapper. from P2P.database.dbtables.py: --- from sqlalchemy import * from sqlalchemy.mods.threadlocal import * from sqlalchemy.schema import default_metadata metadata = default_metadata # table Tregion # Table of regions Tregion = Table('region', metadata, Column('id', Integer, primary_key=True, nullable=False, ), Column('name', String(32), nullable=False, ), ) class region(object): pass assign_mapper(region, Tregion) -- Later, a connection is established via firebird connection.. Then this (table_name = 'region'): table = table_name and getattr(dbtables, table_name, None) or None if not table: return httpexceptions.HTTPBadRequest(detail="Invalid tablename %r" % table_name)(environ, start_response) print "table is %r" % table print "table.c is %r" % table.c print "table.c keys %r" % table.c.keys() The output is: [2006-06-23 15:12:50,398] [pool] : Connection <kinterbasdb.Connection object at 0x0166CE70> checked out from pool [2006-06-23 15:12:50,398] [engine]: BEGIN table is <class 'P2P.database.dbtables.region'> table.c is <sqlalchemy.orm.mapper.LOrderedProp object at 0x014D4BB0> table.c keys [] [2006-06-23 15:12:50,398] [engine]: ROLLBACK (rollback because of exception) File 'E:\\prj\\src\\eclipse\\parent_to_parent\\Web\\p2pserver\\p2pserver\\dbaccess.py', line 70 in __call__ args.append(table.c[k] == v) File 'e:\\prj\\src\\sqlalchemy\\lib\\sqlalchemy\\util.py', line 114 in __getitem__ return self.__data[key] File 'e:\\prj\\src\\sqlalchemy\\lib\\sqlalchemy\\util.py', line 174 in __getitem__ return dict.__getitem__(self, key) exceptions.KeyError: 'id' Now I do a new web request, again: table is <class 'P2P.database.dbtables.region'> table.c is <sqlalchemy.orm.mapper.LOrderedProp object at 0x014D4BB0> table.c keys [] But I take a different path and just do: table.select() (that works and returns all rows) And then retry the first request: [2006-06-23 15:19:44,111] [engine]: BEGIN table is <class 'P2P.database.dbtables.region'> table.c is <sqlalchemy.orm.mapper.LOrderedProp object at 0x014D4BB0> table.c keys ['id', 'name'] So it seems that LOrderdedProp is not being initialized when table.c.keys() is accessed, or when table.c['something'] is accessed. -- Brad Clements, [EMAIL PROTECTED] (315)268-1000 http://www.murkworks.com AOL-IM or SKYPE: BKClements Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ Sqlalchemy-users mailing list Sqlalchemy-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users