You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It works for me after changed file sqlParser.jison by adding:
SECOND return 'SECOND'
MINUTE return 'MINUTE'
HOUR return 'HOUR'
SECONDS return 'SECONDS'
MINUTES return 'MINUTES'
HOURS return 'HOURS'
INTERVAL return 'INTERVAL'
Activity
albin3 commentedon Jun 4, 2019
To add key word "INTERVAL" and support "INTERVAL quantity_expr unit_of_time" grammar.
yuemingl commentedon Jun 4, 2019
It works for me after changed file sqlParser.jison by adding:
SECOND return 'SECOND'
MINUTE return 'MINUTE'
HOUR return 'HOUR'
SECONDS return 'SECONDS'
MINUTES return 'MINUTES'
HOURS return 'HOURS'
INTERVAL return 'INTERVAL'
expr
: boolean_primary { $$ = $1 }
| boolean_primary IS not_opt boolean_extra { $$ = { type: 'IsExpression', hasNot: $3, left: $1, right: $4 } }
| NOT expr { $$ = { type: 'NotExpression', value: $2 } }
| expr '&&' expr { $$ = { type: 'AndExpression', operator: $2, left: $1, right: $3 } }
| expr '||' expr { $$ = { type: 'OrExpression', operator: $2, left: $1, right: $3 } }
| expr OR expr { $$ = { type: 'OrExpression', operator: $2, left: $1, right: $3 } }
| expr AND expr { $$ = { type: 'AndExpression', operator: $2, left: $1, right: $3 } }
| expr XOR expr { $$ = { type: 'XORExpression', left: $1, right: $3 } }
| INTERVAL expr SECOND { $$ = { type: 'IntervalExpression', value: $2, unit: $3 } }
| INTERVAL expr MINUTE { $$ = { type: 'IntervalExpression', value: $2, unit: $3 } }
| INTERVAL expr HOUR { $$ = { type: 'IntervalExpression', value: $2, unit: $3 } }
| INTERVAL expr SECONDS { $$ = { type: 'IntervalExpression', value: $2, unit: $3 } }
| INTERVAL expr MINUTES { $$ = { type: 'IntervalExpression', value: $2, unit: $3 } }
| INTERVAL expr HOURS { $$ = { type: 'IntervalExpression', value: $2, unit: $3 } }
;
and changed file stringify.js by adding:
Sql.prototype.travelIntervalExpression = function (ast) {
this.appendKeyword('interval');
this.travel(ast.value);
this.appendKeyword(ast.unit);
}
albin3 commentedon Jun 4, 2019
Yes, but SECOND, MINUTE, HOUR.. should better be pack as a "unit_of_time".
albin3 commentedon Jun 4, 2019
Will support follows https://dev.mysql.com/doc/refman/5.7/en/expressions.html#temporal-intervals