File tree Expand file tree Collapse file tree 3 files changed +19
-3
lines changed
java/net/sf/jsqlparser/statement/merge
jjtree/net/sf/jsqlparser/parser
test/java/net/sf/jsqlparser/statement/merge Expand file tree Collapse file tree 3 files changed +19
-3
lines changed Original file line number Diff line number Diff line change @@ -53,7 +53,8 @@ public void setValues(List<Expression> values) {
5353
5454 @ Override
5555 public String toString () {
56- return " WHEN NOT MATCHED THEN INSERT " + PlainSelect .getStringList (columns , true , true )
56+ return " WHEN NOT MATCHED THEN INSERT "
57+ + (columns .isEmpty () ? "" : PlainSelect .getStringList (columns , true , true ))
5758 + " VALUES " + PlainSelect .getStringList (values , true , true );
5859 }
5960}
Original file line number Diff line number Diff line change @@ -945,7 +945,7 @@ MergeInsert MergeInsertClause() : {
945945}
946946{
947947 <K_WHEN> <K_NOT> <K_MATCHED> <K_THEN>
948- <K_INSERT> "(" col=Column() { columns.add(col); } ("," col=Column() { columns.add(col); } )* ")" <K_VALUES>
948+ <K_INSERT> [ "(" col=Column() { columns.add(col); } ("," col=Column() { columns.add(col); } )* ")"] <K_VALUES>
949949 "(" exp=SimpleExpression() { expList.add(exp); } ("," exp=SimpleExpression() { expList.add(exp); } )* ")"
950950 {
951951 mi.setColumns(columns);
Original file line number Diff line number Diff line change 2121import net .sf .jsqlparser .JSQLParserException ;
2222import net .sf .jsqlparser .parser .CCJSqlParserUtil ;
2323import net .sf .jsqlparser .statement .Statement ;
24- import org .junit .Test ;
2524import static net .sf .jsqlparser .test .TestUtils .*;
2625import static org .junit .Assert .fail ;
26+ import org .junit .Test ;
2727
2828/**
2929 *
@@ -64,6 +64,21 @@ public void testMergeIssue232() throws JSQLParserException {
6464 assertSqlCanBeParsedAndDeparsed (sql , true );
6565 }
6666
67+ @ Test
68+ public void testMergeIssue676 () throws JSQLParserException {
69+ String sql = "merge INTO M_KC21 USING\n "
70+ + "(SELECT AAA, BBB FROM I_KC21 WHERE I_KC21.aaa = 'li_kun'\n "
71+ + ") TEMP ON (TEMP.AAA = M_KC21.AAA)\n "
72+ + "WHEN MATCHED THEN\n "
73+ + "UPDATE SET M_KC21.BBB = 6 WHERE enterprise_id IN (0, 1)\n "
74+ + "WHEN NOT MATCHED THEN\n "
75+ + "INSERT VALUES\n "
76+ + "(TEMP.AAA,TEMP.BBB\n "
77+ + ")" ;
78+
79+ assertSqlCanBeParsedAndDeparsed (sql , true );
80+ }
81+
6782 @ Test
6883 public void testComplexOracleMergeIntoStatement () throws JSQLParserException {
6984 String sql = "MERGE INTO DestinationValue Dest USING\n "
You can’t perform that action at this time.
0 commit comments