From bd23baf4ac0f9dd520120445594bd00f1b760f4b Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Sun, 28 Dec 2008 21:48:12 +0000 Subject: - Can pass mapped attributes and column objects as keys to query.update({}). [ticket:1262] - Mapped attributes passed to the values() of an expression level insert() or update() will use the keys of the mapped columns, not that of the mapped attribute. --- lib/sqlalchemy/sql/expression.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'lib/sqlalchemy/sql/expression.py') diff --git a/lib/sqlalchemy/sql/expression.py b/lib/sqlalchemy/sql/expression.py index b7d4965dd..07df207dd 100644 --- a/lib/sqlalchemy/sql/expression.py +++ b/lib/sqlalchemy/sql/expression.py @@ -901,6 +901,13 @@ def _labeled(element): else: return element +def _column_as_key(element): + if isinstance(element, basestring): + return element + if hasattr(element, '__clause_element__'): + element = element.__clause_element__() + return element.key + def _literal_as_text(element): if hasattr(element, '__clause_element__'): return element.__clause_element__() @@ -3496,10 +3503,6 @@ class _UpdateBase(ClauseElement): return s def _process_colparams(self, parameters): - - if parameters is None: - return None - if isinstance(parameters, (list, tuple)): pp = {} for i, c in enumerate(self.table.c): -- cgit v1.2.1