diff --git a/core/vdbe/execute.rs b/core/vdbe/execute.rs index 779dab0db..ebd232c08 100644 --- a/core/vdbe/execute.rs +++ b/core/vdbe/execute.rs @@ -1712,7 +1712,9 @@ pub fn op_column( match serial_type { // NULL - 0 => break 'ifnull, + 0 => { + state.registers[*dest] = Register::Value(Value::Null); + } // I8 1 => { state.registers[*dest] = diff --git a/testing/insert.test b/testing/insert.test index 059e42f54..4346b2031 100755 --- a/testing/insert.test +++ b/testing/insert.test @@ -640,4 +640,13 @@ do_execsql_test_on_specific_db {:memory:} default-values-population { INSERT INTO t DEFAULT VALUES; SELECT * FROM t; } {1|666| -2|666|} \ No newline at end of file +2|666|} + +do_execsql_test_on_specific_db {:memory:} set-explicit-null-default-value { + CREATE TABLE t (id INTEGER PRIMARY KEY, x DEFAULT 1); + INSERT INTO t(id, x) VALUES (1, 2); + SELECT * FROM t; + UPDATE t SET x = NULL WHERE id = 1; + SELECT * FROM t; +} {1|2 +1|}