Revision 3287
Added by Aaron Marcuse-Kubitza over 12 years ago
lib/sql_io.py | ||
---|---|---|
292 | 292 |
+' does not exist in mapping, falling back to None', level=2.1) |
293 | 293 |
default = None |
294 | 294 |
|
295 |
# Save default values for all rows since in_table may have rows deleted |
|
296 |
full_in_table = sql_gen.suffixed_table(in_table, '_full') |
|
297 |
full_in_table_cols = [in_pkey_col] |
|
298 |
if default != None: |
|
299 |
full_in_table_cols.append(default) |
|
300 |
default = sql_gen.with_table(default, full_in_table) |
|
301 |
sql.run_query_into(db, sql.mk_select(db, in_table, full_in_table_cols, |
|
302 |
order_by=None, start=0), into=full_in_table) |
|
303 |
sql.add_pkey(db, full_in_table) |
|
304 |
|
|
295 | 305 |
pkeys_names = [in_pkey, out_pkey] |
296 | 306 |
pkeys_cols = [in_pkey_col, out_pkey_col] |
297 | 307 |
|
... | ... | |
476 | 486 |
if not is_function: |
477 | 487 |
log_debug('Setting pkeys of missing rows to ' |
478 | 488 |
+strings.as_tt(repr(default))) |
479 |
missing_rows_joins = input_joins+[sql_gen.Join(into,
|
|
489 |
missing_rows_joins = [full_in_table, sql_gen.Join(into,
|
|
480 | 490 |
{in_pkey: sql_gen.join_same_not_null}, sql_gen.filter_out)] |
481 | 491 |
# must use join_same_not_null or query will take forever |
482 | 492 |
insert_into_pkeys(missing_rows_joins, |
483 |
[in_pkey_col, sql_gen.NamedCol(out_pkey, default)]) |
|
493 |
[sql_gen.Col(in_pkey, full_in_table), |
|
494 |
sql_gen.NamedCol(out_pkey, default)]) |
|
484 | 495 |
# otherwise, there is already an entry for every row |
496 |
sql.empty_temp(db, full_in_table) |
|
485 | 497 |
|
486 | 498 |
assert sql.table_row_count(db, into) == sql.table_row_count(db, in_table) |
487 | 499 |
|
Also available in: Unified diff
sql_io.py: put_table(): Save default values for all rows in new temp table full_in_table since in_table may have rows deleted