diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2008-12-28 21:48:12 +0000 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2008-12-28 21:48:12 +0000 |
| commit | bd23baf4ac0f9dd520120445594bd00f1b760f4b (patch) | |
| tree | da34169da4c61043615220b456e21885eed0c16f /lib/sqlalchemy/sql/expression.py | |
| parent | 8669eda82dcc84b726ab420106dfea86fc8a066f (diff) | |
| download | sqlalchemy-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.py | 11 |
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): |
