Skip to content

Commit 75be7d5

Browse files
committed
Merge test code
1 parent 0dd12b1 commit 75be7d5

File tree

1 file changed

+39
-47
lines changed

1 file changed

+39
-47
lines changed

tests/sqlparser_common.rs

Lines changed: 39 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -10006,6 +10006,45 @@ fn parse_merge() {
1000610006

1000710007
let sql = "MERGE INTO s.bar AS dest USING newArrivals AS S ON (1 > 1) WHEN NOT MATCHED THEN INSERT VALUES (stg.A, stg.B, stg.C)";
1000810008
verified_stmt(sql);
10009+
10010+
// MERGE with predicates
10011+
let sql = "\
10012+
MERGE INTO FOO \
10013+
USING FOO_IMPORT \
10014+
ON (FOO.ID = FOO_IMPORT.ID) \
10015+
WHEN MATCHED THEN \
10016+
UPDATE SET FOO.NAME = FOO_IMPORT.NAME \
10017+
WHERE 1 = 1 \
10018+
DELETE WHERE FOO.NAME LIKE '%.DELETE' \
10019+
WHEN NOT MATCHED THEN \
10020+
INSERT (ID, NAME) \
10021+
VALUES (FOO_IMPORT.ID, UPPER(FOO_IMPORT.NAME)) \
10022+
WHERE NOT FOO_IMPORT.NAME LIKE '%.DO_NOT_INSERT'";
10023+
all_dialects().verified_stmt(sql);
10024+
10025+
// MERGE with simple insert columns
10026+
let sql = "\
10027+
MERGE INTO FOO USING FOO_IMPORT ON (FOO.ID = FOO_IMPORT.ID) \
10028+
WHEN NOT MATCHED THEN \
10029+
INSERT (ID, NAME) \
10030+
VALUES (1, 'abc')";
10031+
all_dialects().verified_stmt(sql);
10032+
10033+
// MERGE with qualified insert columns
10034+
let sql = "\
10035+
MERGE INTO FOO USING FOO_IMPORT ON (FOO.ID = FOO_IMPORT.ID) \
10036+
WHEN NOT MATCHED THEN \
10037+
INSERT (FOO.ID, FOO.NAME) \
10038+
VALUES (1, 'abc')";
10039+
all_dialects().verified_stmt(sql);
10040+
10041+
// MERGE with schema qualified insert columns
10042+
let sql = "\
10043+
MERGE INTO PLAYGROUND.FOO USING FOO_IMPORT ON (PLAYGROUND.FOO.ID = FOO_IMPORT.ID) \
10044+
WHEN NOT MATCHED THEN \
10045+
INSERT (PLAYGROUND.FOO.ID, PLAYGROUND.FOO.NAME) \
10046+
VALUES (1, 'abc')";
10047+
all_dialects().verified_stmt(sql);
1000910048
}
1001010049

1001110050
#[test]
@@ -10079,53 +10118,6 @@ fn test_merge_with_delimiter() {
1007910118
}
1008010119
}
1008110120

10082-
#[test]
10083-
fn test_merge_with_predicates() {
10084-
let sql = "\
10085-
MERGE INTO FOO \
10086-
USING FOO_IMPORT \
10087-
ON (FOO.ID = FOO_IMPORT.ID) \
10088-
WHEN MATCHED THEN \
10089-
UPDATE SET FOO.NAME = FOO_IMPORT.NAME \
10090-
WHERE 1 = 1 \
10091-
DELETE WHERE FOO.NAME LIKE '%.DELETE' \
10092-
WHEN NOT MATCHED THEN \
10093-
INSERT (ID, NAME) \
10094-
VALUES (FOO_IMPORT.ID, UPPER(FOO_IMPORT.NAME)) \
10095-
WHERE NOT FOO_IMPORT.NAME LIKE '%.DO_NOT_INSERT'";
10096-
all_dialects().verified_stmt(sql);
10097-
}
10098-
10099-
#[test]
10100-
fn test_merge_with_insert_simple_columns() {
10101-
let sql = "\
10102-
MERGE INTO FOO USING FOO_IMPORT ON (FOO.ID = FOO_IMPORT.ID) \
10103-
WHEN NOT MATCHED THEN \
10104-
INSERT (ID, NAME) \
10105-
VALUES (1, 'abc')";
10106-
all_dialects().verified_stmt(sql);
10107-
}
10108-
10109-
#[test]
10110-
fn test_merge_with_insert_qualified_columns() {
10111-
let sql = "\
10112-
MERGE INTO FOO USING FOO_IMPORT ON (FOO.ID = FOO_IMPORT.ID) \
10113-
WHEN NOT MATCHED THEN \
10114-
INSERT (FOO.ID, FOO.NAME) \
10115-
VALUES (1, 'abc')";
10116-
all_dialects().verified_stmt(sql);
10117-
}
10118-
10119-
#[test]
10120-
fn test_merge_with_insert_qualified_columns_with_schema() {
10121-
let sql = "\
10122-
MERGE INTO PLAYGROUND.FOO USING FOO_IMPORT ON (PLAYGROUND.FOO.ID = FOO_IMPORT.ID) \
10123-
WHEN NOT MATCHED THEN \
10124-
INSERT (PLAYGROUND.FOO.ID, PLAYGROUND.FOO.NAME) \
10125-
VALUES (1, 'abc')";
10126-
all_dialects().verified_stmt(sql);
10127-
}
10128-
1012910121
#[test]
1013010122
fn test_merge_invalid_statements() {
1013110123
let dialects = all_dialects();

0 commit comments

Comments
 (0)