From c9edf71fb8f75a8ecea2d0abfbaf3c88f976d086 Mon Sep 17 00:00:00 2001 From: PThorpe92 Date: Sat, 5 Apr 2025 21:27:21 -0400 Subject: [PATCH 1/2] Support insert default values syntax --- core/translate/insert.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/translate/insert.rs b/core/translate/insert.rs index 5fda098e6..063a2e264 100644 --- a/core/translate/insert.rs +++ b/core/translate/insert.rs @@ -84,11 +84,11 @@ pub fn translate_insert( ); let root_page = btree_table.root_page; let values = match body { - InsertBody::Select(select, None) => match &select.body.select.deref() { + InsertBody::Select(select, _) => match &select.body.select.deref() { OneSelect::Values(values) => values, _ => todo!(), }, - _ => todo!(), + InsertBody::DefaultValues => &vec![vec![]], }; let column_mappings = resolve_columns_for_insert(&table, columns, values)?; From ff482fc75371f111355ce7f0ea1144cad63c32a5 Mon Sep 17 00:00:00 2001 From: PThorpe92 Date: Sat, 5 Apr 2025 21:34:27 -0400 Subject: [PATCH 2/2] Add test case for insert default values --- testing/cli_tests/cli_test_cases.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/testing/cli_tests/cli_test_cases.py b/testing/cli_tests/cli_test_cases.py index 120d20070..2bce1f165 100755 --- a/testing/cli_tests/cli_test_cases.py +++ b/testing/cli_tests/cli_test_cases.py @@ -264,6 +264,16 @@ def test_update_with_limit(): limbo.quit() +def test_insert_default_values(): + limbo = TestLimboShell( + "CREATE TABLE t (a integer default(42),b integer default (43),c integer default(44));" + ) + for _ in range(1, 10): + limbo.execute_dot("INSERT INTO t DEFAULT VALUES;") + limbo.run_test("insert-default-values", "SELECT * FROM t;", "42|43|44\n" * 9) + limbo.quit() + + if __name__ == "__main__": print("Running all Limbo CLI tests...") test_basic_queries()