Skip to content

Commit b77d3c9

Browse files
authored
deal with subquery in where clause (#54)
1 parent 6452222 commit b77d3c9

File tree

4 files changed

+25
-2
lines changed

4 files changed

+25
-2
lines changed

packages/sql-parser/base/fromClauseParser.js

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

packages/sql-parser/base/parser.js

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

packages/sql-parser/parser.pegjs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -752,6 +752,7 @@ primary
752752
e.paren = true;
753753
return e;
754754
}
755+
/ select_stmt
755756
/ var_decl
756757

757758
column_ref
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
const { parse } = require('../index')
2+
3+
describe('Subquery in where clause', () => {
4+
it('should success to parse', () => {
5+
const sql = `
6+
SELECT *
7+
FROM T1
8+
WHERE T1.num = (SELECT max(T2.num) from T2)
9+
`
10+
const result = parse(sql)
11+
expect(result).toBeDefined()
12+
expect(result).toMatchObject({ type: 'select' })
13+
expect(result.where.expression.left).toMatchObject({ type: 'column_ref' })
14+
expect(result.where.expression.right).toMatchObject({ type: 'select' })
15+
})
16+
})

0 commit comments

Comments
 (0)