Files
email-tracker/external/duckdb/test/sql/peg_parser/merge_into.test
2025-10-24 19:21:19 -05:00

28 lines
1.7 KiB
SQL

# name: test/sql/peg_parser/merge_into.test
# description: Test merge into syntax in peg parser
# group: [peg_parser]
require autocomplete
statement ok
CALL check_peg_parser($TEST_PEG_PARSER$WITH initial_stocks(item_id, balance) AS (VALUES (10, 2200), (20, 1900)) MERGE INTO Stock USING initial_stocks ON FALSE WHEN MATCHED THEN DO NOTHING WHEN NOT MATCHED THEN INSERT VALUES (initial_stocks.item_id, initial_stocks.balance) RETURNING merge_action, *$TEST_PEG_PARSER$);
statement ok
CALL check_peg_parser($TEST_PEG_PARSER$MERGE INTO Stock USING (VALUES (30)) new_accounts(item_id) USING (item_id) WHEN NOT MATCHED THEN INSERT DEFAULT VALUES$TEST_PEG_PARSER$);
statement ok
CALL check_peg_parser($TEST_PEG_PARSER$WITH initial_stocks(item_id, balance) AS (VALUES (10, 2200), (20, 1900)) MERGE INTO Stock USING initial_stocks ON FALSE WHEN MATCHED THEN DO NOTHING WHEN NOT MATCHED THEN INSERT VALUES (initial_stocks.item_id, initial_stocks.balance)$TEST_PEG_PARSER$);
statement ok
CALL check_peg_parser($TEST_PEG_PARSER$MERGE INTO Stock USING (VALUES (5, 10)) new_accounts(item_id) USING (item_id)$TEST_PEG_PARSER$);
statement ok
CALL check_peg_parser($TEST_PEG_PARSER$MERGE INTO Stock USING (VALUES (5, 10)) new_accounts(item_id) USING (item_id) WHEN MATCHED THEN UPDATE$TEST_PEG_PARSER$);
statement ok
CALL check_peg_parser($TEST_PEG_PARSER$MERGE INTO Accounts USING ( VALUES (1, 'user2', [1, 2, 3]) ) new_account(id) USING (id) WHEN MATCHED THEN UPDATE WHEN NOT MATCHED THEN INSERT$TEST_PEG_PARSER$);
statement ok
CALL check_peg_parser($TEST_PEG_PARSER$MERGE INTO Stock USING (VALUES (10)) new_accounts(item_id) USING (item_id) WHEN NOT MATCHED THEN INSERT VALUES (new_accounts.item_id, DEFAULT)$TEST_PEG_PARSER$);