File tree Expand file tree Collapse file tree 4 files changed +26
-5
lines changed
Expand file tree Collapse file tree 4 files changed +26
-5
lines changed Original file line number Diff line number Diff line change 11{
22 "name" : " node-sql-parser" ,
3- "version" : " 3.0.3 " ,
3+ "version" : " 3.0.4 " ,
44 "description" : " simple node sql parser" ,
55 "main" : " index.js" ,
66 "types" : " index.d.ts" ,
Original file line number Diff line number Diff line change 4141 ' INNER' : true ,
4242 ' INSERT' : true ,
4343 ' INTO' : true ,
44+ ' INTERVAL' : true ,
4445 ' IS' : true ,
4546
4647 ' JOIN' : true ,
@@ -1872,8 +1873,8 @@ expr_list
18721873 }
18731874
18741875interval_expr
1875- = KW_INTERVAL __
1876- e :expr __
1876+ = KW_INTERVAL __
1877+ e :expr __
18771878 u : interval_unit {
18781879 // => { type: 'interval', expr: expr; unit: interval_unit; }
18791880 return {
@@ -1882,6 +1883,15 @@ interval_expr
18821883 unit: u .toLowerCase (),
18831884 }
18841885 }
1886+ / KW_INTERVAL __
1887+ e :literal_string {
1888+ // => { type: 'interval', expr: expr; unit: interval_unit; }
1889+ return {
1890+ type: ' interval' ,
1891+ expr: e,
1892+ unit: ' ' ,
1893+ }
1894+ }
18851895
18861896case_expr
18871897 = KW_CASE __
Original file line number Diff line number Diff line change 1- import { toUpper } from './util'
1+ import { toUpper , hasVal } from './util'
22import { exprToSQL } from './expr'
33
44function intervalToSQL ( intervalExpr ) {
55 const { expr, unit } = intervalExpr
6- return `INTERVAL ${ exprToSQL ( expr ) } ${ toUpper ( unit ) } `
6+ const result = [ 'INTERVAL' , exprToSQL ( expr ) , toUpper ( unit ) ]
7+ return result . filter ( hasVal ) . join ( ' ' )
78}
89
910export {
Original file line number Diff line number Diff line change @@ -331,6 +331,16 @@ describe('AST', () => {
331331 } ) ;
332332
333333 describe ( 'date function' , ( ) => {
334+ it ( 'should interval string' , ( ) => {
335+ const opt = {
336+ database : 'postgresql'
337+ }
338+ expect ( getParsedSql ( "SELECT NOW() - INTERVAL '7 DAY'" , opt ) )
339+ . to . equal ( "SELECT NOW() - INTERVAL '7 DAY'" ) ;
340+ expect ( getParsedSql ( "SELECT NOW() - INTERVAL 7 DAY" , opt ) )
341+ . to . equal ( "SELECT NOW() - INTERVAL 7 DAY" ) ;
342+ } )
343+
334344 it ( 'should support adddate function' , ( ) => {
335345 expect ( getParsedSql ( 'SELECT ADDDATE(c, INTERVAL 10 DAY) as b FROM tableA' ) )
336346 . to . equal ( 'SELECT ADDDATE(`c`, INTERVAL 10 DAY) AS `b` FROM `tableA`' ) ;
You can’t perform that action at this time.
0 commit comments