File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 2727 ' ELSE' : true ,
2828 ' END' : true ,
2929 ' EXISTS' : true ,
30+ ' EXCEPT' : true ,
3031 ' EXPLAIN' : true ,
3132
3233 ' FALSE' : true ,
@@ -252,8 +253,8 @@ multiple_stmt
252253 }
253254 }
254255set_op
255- = KW_UNION __ s :(KW_ALL / KW_DISTINCT )? {
256- return s ? ` union ${ s .toLowerCase ()} ` : ' union '
256+ = u :( KW_UNION / KW_INTERSECT / KW_EXCEPT ) __ s :(KW_ALL / KW_DISTINCT )? {
257+ return s ? ` ${ u . toLowerCase () } ${ s .toLowerCase ()} ` : ` ${ u . toLowerCase () } `
257258 }
258259
259260union_stmt
@@ -2297,7 +2298,9 @@ KW_INNER = "INNER"i !ident_start
22972298KW_JOIN = "JOIN" i ! ident_start
22982299KW_OUTER = "OUTER" i ! ident_start
22992300KW_OVER = "OVER" i ! ident_start
2300- KW_UNION = "UNION" i ! ident_start
2301+ KW_UNION = "UNION" i ! ident_start { return ' UNION' ; }
2302+ KW_INTERSECT = "INTERSECT" i ! ident_start { return ' INTERSECT' ; }
2303+ KW_EXCEPT = "EXCEPT" i ! ident_start { return ' EXCEPT' ; }
23012304KW_VALUES = "VALUES" i ! ident_start
23022305KW_USING = "USING" i ! ident_start
23032306
Original file line number Diff line number Diff line change @@ -16,4 +16,22 @@ describe('db2', () => {
1616 sql = 'SELECT * FROM "FGVST2"."CONTACT_TABLE25" FETCH FIRST 10 ROWS ONLY'
1717 expect ( getParsedSql ( sql ) ) . to . be . equal ( 'SELECT * FROM FGVST2.CONTACT_TABLE25 FETCH FIRST 10 ROWS ONLY' )
1818 } )
19+
20+ SQL_LIST = [
21+ {
22+ title : 'except multiple select stmt' ,
23+ sql : [
24+ `SELECT CUSTOMER_NUMBER FROM "ORG"."CUSTOMER_INFO_1"
25+ EXCEPT
26+ SELECT CUSTOMER_NUMBER FROM "ORG"."CUSTOMER_BACKUP";` ,
27+ 'SELECT CUSTOMER_NUMBER FROM ORG.CUSTOMER_INFO_1 EXCEPT SELECT CUSTOMER_NUMBER FROM ORG.CUSTOMER_BACKUP'
28+ ]
29+ } ,
30+ ]
31+ SQL_LIST . forEach ( sqlInfo => {
32+ const { title, sql } = sqlInfo
33+ it ( `should support ${ title } ` , ( ) => {
34+ expect ( getParsedSql ( sql [ 0 ] ) ) . to . equal ( sql [ 1 ] )
35+ } )
36+ } )
1937} )
You can’t perform that action at this time.
0 commit comments