]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
the 'column' function is optional to point a property to a column when constructing...
authorMike Bayer <mike_mp@zzzcomputing.com>
Sat, 24 Dec 2005 15:33:47 +0000 (15:33 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sat, 24 Dec 2005 15:33:47 +0000 (15:33 +0000)
can also be specified as a list to indicate overlap
mapper columns come from its table, no need to add from given columns

lib/sqlalchemy/mapping/mapper.py
test/objectstore.py

index df308a1a22dd46fa56894056731a89fc78dfe036..5a04ea4b298b790abf9cbea4e8754c9f5a92fcfc 100644 (file)
@@ -99,13 +99,13 @@ class Mapper(object):
         else:
             for t in self.tables + [self.table]:
                 try:
-                    list = self.pks_by_table[t]
+                    l = self.pks_by_table[t]
                 except KeyError:
-                    list = self.pks_by_table.setdefault(t, util.HashSet())
+                    l = self.pks_by_table.setdefault(t, util.HashSet())
                 if not len(t.primary_key):
                     raise "Table " + t.name + " has no primary key columns. Specify primary_key argument to mapper."
                 for k in t.primary_key:
-                    list.append(k)
+                    l.append(k)
 
         # make table columns addressable via the mapper
         self.columns = util.OrderedProperties()
@@ -123,8 +123,9 @@ class Mapper(object):
         if properties is not None:
             for key, prop in properties.iteritems():
                 if isinstance(prop, schema.Column):
-                    self.columns[key] = prop
                     prop = ColumnProperty(prop)
+                elif isinstance(prop, list) and isinstance(prop[0], schema.Column):
+                    prop = ColumnProperty(*prop)
                 self.props[key] = prop
                 if isinstance(prop, ColumnProperty):
                     for col in prop.columns:
index 63a694de2b316b993c0f8daefed6c5ef7770133e..d14d8bfe0801004862f073df2f0486f820ae25ee 100644 (file)
@@ -181,8 +181,8 @@ class SaveTest(AssertMixin):
         usersaddresses = sql.join(users, addresses, users.c.user_id == addresses.c.user_id)
         m = mapper(User, usersaddresses, primarytable = users,  
             properties = dict(
-                email = column(addresses.c.email_address)
-                foo_id = column(users.c.user_id, addresses.c.user_id)
+                email = addresses.c.email_address
+                foo_id = [users.c.user_id, addresses.c.user_id],
                 )
             )