Fixed introspection of default values TRUE / FALSE / NULL

Closes #836
This commit is contained in:
Simon Willison 2026-08-12 14:19:30 -07:00
commit 88b48fa167
3 changed files with 42 additions and 0 deletions

View file

@ -1509,6 +1509,26 @@ def test_create_transform(fresh_db, cols, kwargs, expected_schema, should_transf
assert fresh_db.table("demo").count == 1
def test_create_transform_keyword_literal_defaults_unchanged(fresh_db):
fresh_db.execute(
"create table demo ("
"id integer primary key, "
"enabled integer default TRUE, "
"disabled integer default FALSE, "
"nullable text default NULL"
")"
)
traces = []
with fresh_db.tracer(lambda sql, parameters: traces.append((sql, parameters))):
fresh_db.table("demo").create(
{"id": int, "enabled": int, "disabled": int, "nullable": str},
pk="id",
defaults={"enabled": True, "disabled": False, "nullable": None},
transform=True,
)
assert not any(sql.startswith("CREATE TABLE") for sql, _ in traces)
def test_rename_table(fresh_db):
fresh_db.table("t").insert({"foo": "bar"})
assert ["t"] == fresh_db.table_names()