summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/orm/sync.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2006-09-19 17:49:51 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2006-09-19 17:49:51 +0000
commit0044c263684f0915c62a2a7942e84c5ebe2207f7 (patch)
tree2c51958dc707050520aa080e8304e647742d3dd3 /lib/sqlalchemy/orm/sync.py
parent5c1e1c28dafa47671ffe9961a952a36f688964ab (diff)
downloadsqlalchemy-0044c263684f0915c62a2a7942e84c5ebe2207f7.tar.gz
- post_update behavior improved; does a better job at not
updating too many rows, updates only required columns [ticket:208]
Diffstat (limited to 'lib/sqlalchemy/orm/sync.py')
-rw-r--r--lib/sqlalchemy/orm/sync.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/sqlalchemy/orm/sync.py b/lib/sqlalchemy/orm/sync.py
index 8004776c8..c43bd69e0 100644
--- a/lib/sqlalchemy/orm/sync.py
+++ b/lib/sqlalchemy/orm/sync.py
@@ -81,7 +81,10 @@ class ClauseSynchronizer(object):
sqlclause.accept_visitor(processor)
if len(self.syncrules) == rules_added:
raise ArgumentError("No syncrules generated for join criterion " + str(sqlclause))
-
+
+ def dest_columns(self):
+ return [r.dest_column for r in self.syncrules if r.dest_column is not None]
+
def execute(self, source, dest, obj=None, child=None, clearkeys=None):
for rule in self.syncrules:
rule.execute(source, dest, obj, child, clearkeys)