summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/sql/expression.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2008-12-28 21:48:12 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2008-12-28 21:48:12 +0000
commitbd23baf4ac0f9dd520120445594bd00f1b760f4b (patch)
treeda34169da4c61043615220b456e21885eed0c16f /lib/sqlalchemy/sql/expression.py
parent8669eda82dcc84b726ab420106dfea86fc8a066f (diff)
downloadsqlalchemy-bd23baf4ac0f9dd520120445594bd00f1b760f4b.tar.gz
- 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.
Diffstat (limited to 'lib/sqlalchemy/sql/expression.py')
-rw-r--r--lib/sqlalchemy/sql/expression.py11
1 files changed, 7 insertions, 4 deletions
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):