]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
(no commit message)
authorMike Bayer <mike_mp@zzzcomputing.com>
Thu, 21 Jul 2005 01:44:39 +0000 (01:44 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Thu, 21 Jul 2005 01:44:39 +0000 (01:44 +0000)
lib/sqlalchemy/schema.py
test/mapper.py

index 725eb59df25f3d5683105a557efd2f788eb4cea1..c840392a26ff11ccfc26082a57d21c1c84e64a5c 100644 (file)
@@ -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
index c335891068275a627d0f99bf18765e1d8b21a5e4..1ccea04b302d0c9afb4c7b4b4fd53b0ef5a70baf 100644 (file)
@@ -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),