From 2950b99e6a1955f9620eee213791e3732efb3ef3 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Thu, 21 Jul 2005 01:44:39 +0000 Subject: [PATCH] --- lib/sqlalchemy/schema.py | 11 +++++++++++ test/mapper.py | 14 +++++++++++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/lib/sqlalchemy/schema.py b/lib/sqlalchemy/schema.py index 725eb59df2..c840392a26 100644 --- a/lib/sqlalchemy/schema.py +++ b/lib/sqlalchemy/schema.py @@ -16,6 +16,7 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. from sqlalchemy.util import * +import copy engine = None @@ -74,6 +75,12 @@ class Table(SchemaItem): self._impl = self.engine.tableimpl(self) self._init_items(*args) + if params.get('autoload', False): + self.engine.reflecttable(self) + + def append_item(self, item): + self._init_items(item) + def _set_parent(self, schema): schema.tables[self.name] = self self.schema = schema @@ -110,6 +117,10 @@ class Column(SchemaItem): def _make_proxy(self, selectable, name = None): # wow! using copy.copy(c) adds a full second to the select.py unittest package + #c = copy.copy(self) + #if name is not None: + # c.name = name + # c.key = name c = Column(name or self.name, self.type, key = name or self.key, primary_key = self.primary_key) c.table = selectable c.engine = self.engine diff --git a/test/mapper.py b/test/mapper.py index c335891068..1ccea04b30 100644 --- a/test/mapper.py +++ b/test/mapper.py @@ -135,8 +135,9 @@ class MapperTest(PersistTest): def testeager(self): m = mapper(User, users, properties = dict( - addresses = eagermapper(Address, addresses, users.c.user_id==addresses.c.user_id) + addresses = lazymapper(Address, addresses, users.c.user_id==addresses.c.user_id) )) + #l = m.options(eagerload('addresses')).select() l = m.select() print repr(l) @@ -147,6 +148,17 @@ class MapperTest(PersistTest): l = m.select(and_(addresses.c.email_address == 'ed@lala.com', addresses.c.user_id==users.c.user_id)) print repr(l) + def testcompile(self): + m = mapper(User, users, properties = dict( + addresses = eagermapper(Address, addresses, users.c.user_id==addresses.c.user_id) + )) + s = m.compile(and_(addresses.c.email_address == bindparam('emailad'), addresses.c.user_id==users.c.user_id)) + c = s.compile() + print "\n" + str(c) + repr(c.get_params()) + + l = m.instances(s.execute(emailad = 'jack@bean.com')) + print repr(l) + def testmultieager(self): m = mapper(User, users, properties = dict( addresses = eagermapper(Address, addresses, users.c.user_id==addresses.c.user_id), -- 2.47.2