diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2008-03-04 20:57:32 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2008-03-04 20:57:32 +0000 |
commit | 793b7c2e6b177a9f6653dc36600f1e5bea051a96 (patch) | |
tree | 00db49fe3f737cfe8635ad300c217c3442f2c678 /lib/sqlalchemy/sql/expression.py | |
parent | 41e754222070ef7ee9110458937660ecd993c1b0 (diff) | |
download | sqlalchemy-793b7c2e6b177a9f6653dc36600f1e5bea051a96.tar.gz |
- added "bind" keyword argument to insert(), update(), delete();
.bind property is settable on those as well as select().
Diffstat (limited to 'lib/sqlalchemy/sql/expression.py')
-rw-r--r-- | lib/sqlalchemy/sql/expression.py | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/lib/sqlalchemy/sql/expression.py b/lib/sqlalchemy/sql/expression.py index 812c70c2d..9fb0e596a 100644 --- a/lib/sqlalchemy/sql/expression.py +++ b/lib/sqlalchemy/sql/expression.py @@ -2981,13 +2981,17 @@ class CompoundSelect(_SelectBaseMixin, FromClause): yield t def bind(self): + if self._bind: + return self._bind for s in self.selects: e = s.bind if e: return e else: return None - bind = property(bind) + def _set_bind(self, bind): + self._bind = bind + bind = property(bind, _set_bind) class Select(_SelectBaseMixin, FromClause): """Represents a ``SELECT`` statement. @@ -3437,7 +3441,9 @@ class Select(_SelectBaseMixin, FromClause): self._bind = e return e return None - bind = property(bind) + def _set_bind(self, bind): + self._bind = bind + bind = property(bind, _set_bind) class _UpdateBase(ClauseElement): """Form the base for ``INSERT``, ``UPDATE``, and ``DELETE`` statements.""" @@ -3462,11 +3468,15 @@ class _UpdateBase(ClauseElement): return parameters def bind(self): - return self.table.bind - bind = property(bind) + return self._bind or self.table.bind + + def _set_bind(self, bind): + self._bind = bind + bind = property(bind, _set_bind) class Insert(_UpdateBase): - def __init__(self, table, values=None, inline=False, **kwargs): + def __init__(self, table, values=None, inline=False, bind=None, **kwargs): + self._bind = bind self.table = table self.select = None self.inline=inline @@ -3495,7 +3505,8 @@ class Insert(_UpdateBase): return u class Update(_UpdateBase): - def __init__(self, table, whereclause, values=None, inline=False, **kwargs): + def __init__(self, table, whereclause, values=None, inline=False, bind=None, **kwargs): + self._bind = bind self.table = table if whereclause: self._whereclause = _literal_as_text(whereclause) @@ -3539,7 +3550,8 @@ class Update(_UpdateBase): return u class Delete(_UpdateBase): - def __init__(self, table, whereclause): + def __init__(self, table, whereclause, bind=None): + self._bind = bind self.table = table if whereclause: self._whereclause = _literal_as_text(whereclause) |