summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/sql/expression.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2008-03-04 20:57:32 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2008-03-04 20:57:32 +0000
commit793b7c2e6b177a9f6653dc36600f1e5bea051a96 (patch)
tree00db49fe3f737cfe8635ad300c217c3442f2c678 /lib/sqlalchemy/sql/expression.py
parent41e754222070ef7ee9110458937660ecd993c1b0 (diff)
downloadsqlalchemy-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.py26
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)