mirror of
https://github.com/simonw/sqlite-utils.git
synced 2026-07-23 01:14:31 +02:00
When inserting a CSV file that contains only a header row (no data rows), the --detect-types option would crash with an AssertionError because it tried to transform a table that didn't exist. This fix adds a check to ensure the table exists before attempting to apply type transformations. The fix is applied in two places: 1. insert_upsert_implementation() for the insert command 2. memory() command for CSV/TSV files Added test case: test_insert_csv_headers_only Co-authored-by: Test User <test@example.com>
This commit is contained in:
parent
1a28416e10
commit
2b0cc04c8d
2 changed files with 20 additions and 2 deletions
|
|
@ -597,3 +597,21 @@ def test_insert_streaming_batch_size_1(db_path):
|
|||
proc.stdin.close()
|
||||
proc.wait()
|
||||
assert proc.returncode == 0
|
||||
|
||||
|
||||
def test_insert_csv_headers_only(tmpdir):
|
||||
"""Test that CSV with only header row (no data) works with --detect-types (issue #702)"""
|
||||
db_path = str(tmpdir / "test.db")
|
||||
csv_path = str(tmpdir / "headers_only.csv")
|
||||
with open(csv_path, "w") as fp:
|
||||
fp.write("id,name,age\n")
|
||||
# Should not crash with --detect-types (which is now the default)
|
||||
result = CliRunner().invoke(
|
||||
cli.cli,
|
||||
["insert", db_path, "data", csv_path, "--csv"],
|
||||
catch_exceptions=False,
|
||||
)
|
||||
assert result.exit_code == 0
|
||||
# Table should not exist since there were no data rows
|
||||
db = Database(db_path)
|
||||
assert not db["data"].exists()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue