mirror of
https://github.com/simonw/sqlite-utils.git
synced 2026-07-23 01:14:31 +02:00
Fix for bug with extra columns in later chunks, closes #234
Thanks @nieuwenhoven for the fix, proposed in #225
This commit is contained in:
parent
f51a1f6c3c
commit
8f042ae1fd
2 changed files with 20 additions and 6 deletions
|
|
@ -1904,12 +1904,10 @@ class Table(Queryable):
|
|||
if hash_id:
|
||||
all_columns.insert(0, hash_id)
|
||||
else:
|
||||
all_columns += [
|
||||
column
|
||||
for record in chunk
|
||||
for column in record
|
||||
if column not in all_columns
|
||||
]
|
||||
for record in chunk:
|
||||
all_columns += [
|
||||
column for column in record if column not in all_columns
|
||||
]
|
||||
|
||||
validate_column_names(all_columns)
|
||||
first = False
|
||||
|
|
|
|||
|
|
@ -569,6 +569,22 @@ def test_insert_replace_rows_alter_table(fresh_db, use_table_factory):
|
|||
] == list(table.rows)
|
||||
|
||||
|
||||
def test_insert_all_with_extra_columns_in_later_chunks(fresh_db):
|
||||
chunk = [
|
||||
{"record": "Record 1"},
|
||||
{"record": "Record 2"},
|
||||
{"record": "Record 3"},
|
||||
{"record": "Record 4", "extra": 1},
|
||||
]
|
||||
fresh_db["t"].insert_all(chunk, batch_size=2, alter=True)
|
||||
assert list(fresh_db["t"].rows) == [
|
||||
{"record": "Record 1", "extra": None},
|
||||
{"record": "Record 2", "extra": None},
|
||||
{"record": "Record 3", "extra": None},
|
||||
{"record": "Record 4", "extra": 1},
|
||||
]
|
||||
|
||||
|
||||
def test_bulk_insert_more_than_999_values(fresh_db):
|
||||
"Inserting 100 items with 11 columns should work"
|
||||
fresh_db["big"].insert_all(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue