Skip to content
This repository was archived by the owner on Jul 15, 2021. It is now read-only.

Commit e8074d0

Browse files
committed
Fix grammar for BETWEEN expression. Closes #12
Thanks @gertheber
1 parent ce9a2c2 commit e8074d0

File tree

3 files changed

+10
-4
lines changed

3 files changed

+10
-4
lines changed

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,13 @@ All notable changes to this project will be documented in this file.
99
select CAST(4 / 9 AS DECIMAL(5,2)) as hat
1010
from pants;
1111
```
12+
- Fixed `BETWEEN` expression grammar to remove bad recursion.
13+
14+
``` sql
15+
select num
16+
from nums n
17+
where num between 100 AND 200;
18+
```
1219

1320
## [v0.12.2] - 2016-01-29
1421
### Fixed

lib/parser.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/grammar.pegjs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,6 @@ expression_node
192192
= expression_collate
193193
/ expression_compare
194194
/ expression_null
195-
/*/ expression_is*/
196195
/ expression_between
197196
/ expression_in
198197
/ stmt_select
@@ -262,7 +261,7 @@ expression_is_not_join
262261

263262
/** @note Removed expression on left-hand-side to remove recursion */
264263
expression_between "BETWEEN Expression"
265-
= v:( expression_value ) o n:( expression_is_not )? b:( BETWEEN ) o e1:( expression ) o s:( AND ) o e2:( expression )
264+
= v:( expression_value ) o n:( expression_is_not )? b:( BETWEEN ) o e1:( expression_types ) o s:( AND ) o e2:( expression_types )
266265
{
267266
return {
268267
'type': 'expression',

0 commit comments

Comments
 (0)