diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2011-11-22 18:05:05 -0500 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2011-11-22 18:05:05 -0500 |
commit | 4de3b28abce67a09dfde1cffd8a244b6542ae8c1 (patch) | |
tree | a5ec8ef126ce6dc82eff4e8d9e7393ac80dcbb77 /lib/sqlalchemy/sql/expression.py | |
parent | 90b6ca30e430a06ed1d1696f3881ae72c6014ecd (diff) | |
download | sqlalchemy-4de3b28abce67a09dfde1cffd8a244b6542ae8c1.tar.gz |
fixes to actually get tests to pass
Diffstat (limited to 'lib/sqlalchemy/sql/expression.py')
-rw-r--r-- | lib/sqlalchemy/sql/expression.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/sqlalchemy/sql/expression.py b/lib/sqlalchemy/sql/expression.py index 6520be202..6eb4367b3 100644 --- a/lib/sqlalchemy/sql/expression.py +++ b/lib/sqlalchemy/sql/expression.py @@ -5292,6 +5292,20 @@ class Update(ValuesBase): else: self._whereclause = _literal_as_text(whereclause) + @property + def _extra_froms(self): + # TODO: this could be made memoized + # if the memoization is reset on each generative call. + froms = [] + seen = set([self.table]) + + if self._whereclause is not None: + for item in _from_objects(self._whereclause): + if not seen.intersection(item._cloned_set): + froms.append(item) + seen.update(item._cloned_set) + + return froms class Delete(UpdateBase): """Represent a DELETE construct. |