diff options
| author | mike bayer <mike_mp@zzzcomputing.com> | 2016-06-06 18:56:20 -0400 |
|---|---|---|
| committer | Gerrit Code Review <gerrit2@ln3.zzzcomputing.com> | 2016-06-06 18:56:20 -0400 |
| commit | a90b0101aaf616cddb8bc675f4a221fe7de6c420 (patch) | |
| tree | 8d27951ccf32a992f182b26296bff57569d3eb01 /lib/sqlalchemy/orm/persistence.py | |
| parent | 6bc0da30b0f238514ccfbc8ac1fb78200ee104d1 (diff) | |
| parent | 528509e1bc41c7fe4e51f7bb550db6343b29e841 (diff) | |
| download | sqlalchemy-a90b0101aaf616cddb8bc675f4a221fe7de6c420.tar.gz | |
Merge "Add "render_nulls" flag to bulk_insert as optional performance optimization"
Diffstat (limited to 'lib/sqlalchemy/orm/persistence.py')
| -rw-r--r-- | lib/sqlalchemy/orm/persistence.py | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/sqlalchemy/orm/persistence.py b/lib/sqlalchemy/orm/persistence.py index a5e0d9d95..0b029f466 100644 --- a/lib/sqlalchemy/orm/persistence.py +++ b/lib/sqlalchemy/orm/persistence.py @@ -25,7 +25,8 @@ from . import loading def _bulk_insert( - mapper, mappings, session_transaction, isstates, return_defaults): + mapper, mappings, session_transaction, isstates, return_defaults, + render_nulls): base_mapper = mapper.base_mapper cached_connections = _cached_connection_dict(base_mapper) @@ -58,7 +59,8 @@ def _bulk_insert( has_all_defaults in _collect_insert_commands(table, ( (None, mapping, mapper, connection) for mapping in mappings), - bulk=True, return_defaults=return_defaults + bulk=True, return_defaults=return_defaults, + render_nulls=render_nulls ) ) _emit_insert_statements(base_mapper, None, @@ -365,7 +367,7 @@ def _organize_states_for_delete(base_mapper, states, uowtransaction): def _collect_insert_commands( table, states_to_insert, - bulk=False, return_defaults=False): + bulk=False, return_defaults=False, render_nulls=False): """Identify sets of values to use in INSERT statements for a list of states. @@ -384,7 +386,7 @@ def _collect_insert_commands( for propkey in set(propkey_to_col).intersection(state_dict): value = state_dict[propkey] col = propkey_to_col[propkey] - if value is None and propkey not in eval_none: + if value is None and propkey not in eval_none and not render_nulls: continue elif not bulk and isinstance(value, sql.ClauseElement): value_params[col.key] = value |
