summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/sql/expression.py
diff options
context:
space:
mode:
authorAnts Aasma <ants.aasma@gmail.com>2007-10-02 23:57:54 +0000
committerAnts Aasma <ants.aasma@gmail.com>2007-10-02 23:57:54 +0000
commite82ca71cc5c4175f071cdd72207ec04e58a6498c (patch)
tree74e56b7bef7b9ea082a0b0c296e414fe8686d254 /lib/sqlalchemy/sql/expression.py
parent73b0c40946ddcf4f4cbbccb90e81fd914143576d (diff)
downloadsqlalchemy-e82ca71cc5c4175f071cdd72207ec04e58a6498c.tar.gz
add support for returning results from inserts and updates for postgresql 8.2+. [ticket:797]
Diffstat (limited to 'lib/sqlalchemy/sql/expression.py')
-rw-r--r--lib/sqlalchemy/sql/expression.py24
1 files changed, 14 insertions, 10 deletions
diff --git a/lib/sqlalchemy/sql/expression.py b/lib/sqlalchemy/sql/expression.py
index 9a9cf65d2..6f3ee94ab 100644
--- a/lib/sqlalchemy/sql/expression.py
+++ b/lib/sqlalchemy/sql/expression.py
@@ -249,7 +249,7 @@ def subquery(alias, *args, **kwargs):
return Select(*args, **kwargs).alias(alias)
-def insert(table, values=None, inline=False):
+def insert(table, values=None, inline=False, **kwargs):
"""Return an [sqlalchemy.sql.expression#Insert] clause element.
Similar functionality is available via the ``insert()`` method on
@@ -287,9 +287,9 @@ def insert(table, values=None, inline=False):
against the ``INSERT`` statement.
"""
- return Insert(table, values, inline=inline)
+ return Insert(table, values, inline=inline, **kwargs)
-def update(table, whereclause=None, values=None, inline=False):
+def update(table, whereclause=None, values=None, inline=False, **kwargs):
"""Return an [sqlalchemy.sql.expression#Update] clause element.
Similar functionality is available via the ``update()`` method on
@@ -332,7 +332,7 @@ def update(table, whereclause=None, values=None, inline=False):
against the ``UPDATE`` statement.
"""
- return Update(table, whereclause=whereclause, values=values, inline=inline)
+ return Update(table, whereclause=whereclause, values=values, inline=inline, **kwargs)
def delete(table, whereclause = None, **kwargs):
"""Return a [sqlalchemy.sql.expression#Delete] clause element.
@@ -2699,11 +2699,11 @@ class TableClause(FromClause):
def select(self, whereclause = None, **params):
return select([self], whereclause, **params)
- def insert(self, values=None, inline=False):
- return insert(self, values=values, inline=inline)
+ def insert(self, values=None, inline=False, **kwargs):
+ return insert(self, values=values, inline=inline, **kwargs)
- def update(self, whereclause=None, values=None, inline=False):
- return update(self, whereclause=whereclause, values=values, inline=inline)
+ def update(self, whereclause=None, values=None, inline=False, **kwargs):
+ return update(self, whereclause=whereclause, values=values, inline=inline, **kwargs)
def delete(self, whereclause=None):
return delete(self, whereclause)
@@ -3356,12 +3356,14 @@ class _UpdateBase(ClauseElement):
return self.table.bind
class Insert(_UpdateBase):
- def __init__(self, table, values=None, inline=False):
+ def __init__(self, table, values=None, inline=False, **kwargs):
self.table = table
self.select = None
self.inline=inline
self.parameters = self._process_colparams(values)
+ self.kwargs = kwargs
+
def get_children(self, **kwargs):
if self.select is not None:
return self.select,
@@ -3383,12 +3385,14 @@ class Insert(_UpdateBase):
return u
class Update(_UpdateBase):
- def __init__(self, table, whereclause, values=None, inline=False):
+ def __init__(self, table, whereclause, values=None, inline=False, **kwargs):
self.table = table
self._whereclause = whereclause
self.inline = inline
self.parameters = self._process_colparams(values)
+ self.kwargs = kwargs
+
def get_children(self, **kwargs):
if self._whereclause is not None:
return self._whereclause,