diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2005-09-19 02:27:39 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2005-09-19 02:27:39 +0000 |
commit | 94e3321f8cc2c957ce874188f1693343161e7e69 (patch) | |
tree | 5508ee356691461d4666f72eff7ece431a97883a /lib/sqlalchemy/sql.py | |
parent | fa1153405c4df9f20c23734f5bfb9ffca71a48f9 (diff) | |
download | sqlalchemy-94e3321f8cc2c957ce874188f1693343161e7e69.tar.gz |
deletes...
Diffstat (limited to 'lib/sqlalchemy/sql.py')
-rw-r--r-- | lib/sqlalchemy/sql.py | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/lib/sqlalchemy/sql.py b/lib/sqlalchemy/sql.py index d6247f576..dc25a1411 100644 --- a/lib/sqlalchemy/sql.py +++ b/lib/sqlalchemy/sql.py @@ -388,6 +388,10 @@ class BinaryClause(ClauseElement): self.right.accept_visitor(visitor) visitor.visit_binary(self) + def swap(self): + c = self.left + self.left = self.right + self.right = c class Selectable(FromClause): """represents a column list-holding object, like a table or subquery. can be used anywhere @@ -725,12 +729,14 @@ class UpdateBase(ClauseElement): if isinstance(value, Select): value.clear_from(self.table.id) elif _is_literal(value): - try: + if _is_literal(key): col = self.table.c[key] + else: + col = key + try: parameters[key] = bindparam(col.name, value) except KeyError: del parameters[key] - return parameters def get_colparams(self, parameters): @@ -743,6 +749,8 @@ class UpdateBase(ClauseElement): # compiled params if parameters is None: parameters = {} + else: + parameters = parameters.copy() if self.parameters is not None: for k, v in self.parameters.iteritems(): @@ -754,7 +762,10 @@ class UpdateBase(ClauseElement): if isinstance(key, schema.Column): d[key] = value else: - d[self.table.columns[str(key)]] = value + try: + d[self.table.columns[str(key)]] = value + except AttributeError: + pass # create a list of column assignment clauses as tuples values = [] |