summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/orm/session.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2014-09-02 19:23:09 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2014-09-02 19:23:09 -0400
commitccfd26d96916cc7953f1fefa8abed53d4f696c4c (patch)
tree756d9514444c608edbcc783405905d4ab4b973c1 /lib/sqlalchemy/orm/session.py
parent7e0c2241627090939df4ffdf71a09747fd599158 (diff)
downloadsqlalchemy-ccfd26d96916cc7953f1fefa8abed53d4f696c4c.tar.gz
- add options to get back pk defaults for inserts.
times spent start getting barely different...
Diffstat (limited to 'lib/sqlalchemy/orm/session.py')
-rw-r--r--lib/sqlalchemy/orm/session.py16
1 files changed, 9 insertions, 7 deletions
diff --git a/lib/sqlalchemy/orm/session.py b/lib/sqlalchemy/orm/session.py
index e075b9c71..1611688b0 100644
--- a/lib/sqlalchemy/orm/session.py
+++ b/lib/sqlalchemy/orm/session.py
@@ -2036,20 +2036,22 @@ class Session(_SessionClassMethods):
with util.safe_reraise():
transaction.rollback(_capture_exception=True)
- def bulk_save_objects(self, objects):
+ def bulk_save_objects(self, objects, return_defaults=False):
for (mapper, isupdate), states in itertools.groupby(
(attributes.instance_state(obj) for obj in objects),
lambda state: (state.mapper, state.key is not None)
):
- self._bulk_save_mappings(mapper, states, isupdate, True)
+ self._bulk_save_mappings(
+ mapper, states, isupdate, True, return_defaults)
- def bulk_insert_mappings(self, mapper, mappings):
- self._bulk_save_mappings(mapper, mappings, False, False)
+ def bulk_insert_mappings(self, mapper, mappings, return_defaults=False):
+ self._bulk_save_mappings(mapper, mappings, False, False, return_defaults)
def bulk_update_mappings(self, mapper, mappings):
- self._bulk_save_mappings(mapper, mappings, True, False)
+ self._bulk_save_mappings(mapper, mappings, True, False, False)
- def _bulk_save_mappings(self, mapper, mappings, isupdate, isstates):
+ def _bulk_save_mappings(
+ self, mapper, mappings, isupdate, isstates, return_defaults):
mapper = _class_to_mapper(mapper)
self._flushing = True
@@ -2061,7 +2063,7 @@ class Session(_SessionClassMethods):
mapper, mappings, transaction, isstates)
else:
persistence._bulk_insert(
- mapper, mappings, transaction, isstates)
+ mapper, mappings, transaction, isstates, return_defaults)
transaction.commit()
except: