diff --git a/asdfghhjkl b/asdfghhjkl new file mode 100644 index 000000000..192c08d9b Binary files /dev/null and b/asdfghhjkl differ diff --git a/core/translate/insert.rs b/core/translate/insert.rs index 880e47399..6549eb5ff 100644 --- a/core/translate/insert.rs +++ b/core/translate/insert.rs @@ -1446,7 +1446,9 @@ fn build_insertion<'a>( register: rowid_register, }); } else { - column_mappings[idx_in_table].value_index = Some(value_index); + if column_mappings[idx_in_table].value_index.is_none() { + column_mappings[idx_in_table].value_index = Some(value_index); + } } } else if ROWID_STRS .iter() diff --git a/idk.text b/idk.text new file mode 100644 index 000000000..8fefeafed --- /dev/null +++ b/idk.text @@ -0,0 +1 @@ +bans ok diff --git a/testing/insert.test b/testing/insert.test index e8c270aeb..5d4f9896e 100755 --- a/testing/insert.test +++ b/testing/insert.test @@ -865,3 +865,11 @@ do_execsql_test_in_memory_any_error wrong-column-count-partial-columns-values-to CREATE TABLE t(a, b, c); INSERT INTO t(a) VALUES (1, 2); } + + +# https://github.com/tursodatabase/turso/issues/3951 +do_execsql_test_on_specific_db 1 {:memory:} insert-999999999 { +create table t(a); +insert into t(a, a) values (2, 3); +select * from t; +}{2} \ No newline at end of file diff --git a/wth.d b/wth.d new file mode 100644 index 000000000..e69de29bb