[Sqlalchemy-commits] [1419] sqlalchemy/branches/schema/lib/sqlalchemy/orm: working on export of unio
Brought to you by:
zzzeek
From: <co...@sq...> - 2006-05-06 19:55:48
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head><style type="text/css"><!-- #msg dl { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; } #msg dt { float: left; width: 6em; font-weight: bold; } #msg dt:after { content:':';} #msg dl, #msg dt, #msg ul, #msg li { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; } #msg dl a { font-weight: bold} #msg dl a:link { color:#fc3; } #msg dl a:active { color:#ff0; } #msg dl a:visited { color:#cc6; } h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; } #msg pre { overflow: auto; background: #ffc; border: 1px #fc0 solid; padding: 6px; } #msg ul, pre { overflow: auto; } #patch { width: 100%; } #patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;} #patch .propset h4, #patch .binary h4 {margin:0;} #patch pre {padding:0;line-height:1.2em;margin:0;} #patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;} #patch .propset .diff, #patch .binary .diff {padding:10px 0;} #patch span {display:block;padding:0 10px;} #patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;} #patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;} #patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;} #patch .lines, .info {color:#888;background:#fff;} --></style> <title>[1419] sqlalchemy/branches/schema/lib/sqlalchemy/orm: working on export of union'ed columns...</title> </head> <body> <div id="msg"> <dl> <dt>Revision</dt> <dd>1419</dd> <dt>Author</dt> <dd>zzzeek</dd> <dt>Date</dt> <dd>2006-05-06 14:55:38 -0500 (Sat, 06 May 2006)</dd> </dl> <h3>Log Message</h3> <pre>working on export of union'ed columns...</pre> <h3>Modified Paths</h3> <ul> <li><a href="#sqlalchemybranchesschemalibsqlalchemyormmapperpy">sqlalchemy/branches/schema/lib/sqlalchemy/orm/mapper.py</a></li> <li><a href="#sqlalchemybranchesschemalibsqlalchemyormunitofworkpy">sqlalchemy/branches/schema/lib/sqlalchemy/orm/unitofwork.py</a></li> </ul> </div> <div id="patch"> <h3>Diff</h3> <a id="sqlalchemybranchesschemalibsqlalchemyormmapperpy"></a> <div class="modfile"><h4>Modified: sqlalchemy/branches/schema/lib/sqlalchemy/orm/mapper.py (1418 => 1419)</h4> <pre class="diff"><span> <span class="info">--- sqlalchemy/branches/schema/lib/sqlalchemy/orm/mapper.py 2006-05-06 18:52:03 UTC (rev 1418) +++ sqlalchemy/branches/schema/lib/sqlalchemy/orm/mapper.py 2006-05-06 19:55:38 UTC (rev 1419) </span><span class="lines">@@ -169,8 +169,10 @@ </span><span class="cx"> if k.table != self.mapped_table: </span><span class="cx"> # associate pk cols from subtables to the "main" table </span><span class="cx"> self.pks_by_table.setdefault(self.mapped_table, util.HashSet(ordered=True)).append(k) </span><ins>+ # TODO: need select_table, local_table properly accounted for when custom primary key is sent </ins><span class="cx"> else: </span><span class="cx"> for t in self.tables + [self.mapped_table, self.select_table]: </span><ins>+ print "SET UP PKS FOR ", str(t) </ins><span class="cx"> try: </span><span class="cx"> l = self.pks_by_table[t] </span><span class="cx"> except KeyError: </span><span class="lines">@@ -228,6 +230,18 @@ </span><span class="cx"> proplist = self.columntoproperty.setdefault(column.original, []) </span><span class="cx"> proplist.append(prop) </span><span class="cx"> </span><ins>+ for column in self.mapped_table.columns: + if not self.columntoproperty.has_key(column.original): + proplist = [] + self.columntoproperty[column.original] = proplist + # id like it to use this somehow + #col = self.select_table._get_col_by_original(column.original) + try: + prop = self.props[column.key] + except KeyError: + raise exceptions.ArgumentError("Selectable '%s' does not contain local table column '%s'" % (self.select_table, column.key)) + proplist.append(prop) + </ins><span class="cx"> if not non_primary and (not mapper_registry.has_key(self.class_key) or self.is_primary or (inherits is not None and inherits._is_primary_mapper())): </span><span class="cx"> sessionlib.global_attributes.reset_class_managed(self.class_) </span><span class="cx"> self._init_class() </span><span class="lines">@@ -546,9 +560,10 @@ </span><span class="cx"> an UPDATE statement for each table used by this mapper, for each element of the </span><span class="cx"> list.""" </span><span class="cx"> </span><ins>+ #print "SAVE_OBJ MAPPER", self.class_.__name__, objects </ins><span class="cx"> connection = uow.transaction.connection(self) </span><span class="cx"> for table in self.tables: </span><del>- #print "SAVE_OBJ table ", table.name </del><ins>+ #print "SAVE_OBJ table ", self.class_.__name__, table.name </ins><span class="cx"> # looping through our set of tables, which are all "real" tables, as opposed </span><span class="cx"> # to our main table which might be a select statement or something non-writeable </span><span class="cx"> </span><span class="lines">@@ -557,6 +572,7 @@ </span><span class="cx"> # they are separate execs via execute(), not executemany() </span><span class="cx"> </span><span class="cx"> if not self._has_pks(table): </span><ins>+ #print "NO PKS ?", str(table) </ins><span class="cx"> # if we dont have a full set of primary keys for this table, we cant really </span><span class="cx"> # do any CRUD with it, so skip. this occurs if we are mapping against a query </span><span class="cx"> # that joins on other tables so its not really an error condition. </span></span></pre></div> <a id="sqlalchemybranchesschemalibsqlalchemyormunitofworkpy"></a> <div class="modfile"><h4>Modified: sqlalchemy/branches/schema/lib/sqlalchemy/orm/unitofwork.py (1418 => 1419)</h4> <pre class="diff"><span> <span class="info">--- sqlalchemy/branches/schema/lib/sqlalchemy/orm/unitofwork.py 2006-05-06 18:52:03 UTC (rev 1418) +++ sqlalchemy/branches/schema/lib/sqlalchemy/orm/unitofwork.py 2006-05-06 19:55:38 UTC (rev 1419) </span><span class="lines">@@ -742,7 +742,7 @@ </span><span class="cx"> def _repr_task(task): </span><span class="cx"> if task.mapper is not None: </span><span class="cx"> if task.mapper.__class__.__name__ == 'Mapper': </span><del>- name = task.mapper.class_.__name__ + "/" + str(task.mapper.primarytable) + "/" + str(id(task.mapper)) </del><ins>+ name = task.mapper.class_.__name__ + "/" + str(task.mapper.local_table) + "/" + str(id(task.mapper)) </ins><span class="cx"> else: </span><span class="cx"> name = repr(task.mapper) </span><span class="cx"> else: </span><span class="lines">@@ -815,7 +815,7 @@ </span><span class="cx"> def __repr__(self): </span><span class="cx"> if self.mapper is not None: </span><span class="cx"> if self.mapper.__class__.__name__ == 'Mapper': </span><del>- name = self.mapper.class_.__name__ + "/" + self.mapper.primarytable.name </del><ins>+ name = self.mapper.class_.__name__ + "/" + self.mapper.local_table.name </ins><span class="cx"> else: </span><span class="cx"> name = repr(self.mapper) </span><span class="cx"> else: </span></span></pre> </div> </div> </body> </html> |