- Notifications
You must be signed in to change notification settings - Fork47
SQL(select) parser written with jison. parse SQL into abstract syntax tree(AST) and stringify back to SQL. sql grammar followshttps://dev.mysql.com/doc/refman/5.7/en/select.html
License
JavaScriptor/js-sql-parser
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
parse / stringify sql (select grammar) in js.
sql grammar followshttps://dev.mysql.com/doc/refman/5.7/en/select.html
- Unicode extended char support for column name or alias & Function call in
table_factor
since v1.6.0#58,#60 - Support feature
PlaceHolder like ${param}
since v1.5.0#43 - Fix bug
using ' & " for column alias?
since v1.4.1#40,#44 - Fix bug tableFactor alias since v1.3.0#34
- Add support for "`" quoted alias since v1.2.2.#33
- Fix bug stringify keyword
having
since v1.2.1.#29 - Typo 'refrence' has been fixed to 'reference' since v1.2.0.
for more changes seeCHANGELOG
npm install --save js-sql-parser
constparser=require('js-sql-parser');constast=parser.parse('select * from dual');console.log(JSON.stringify(ast,null,2));ast.value.selectItems.value[0].value='foo';ast.value.from.value[0].value.value.value='bar';console.log(parser.stringify(ast));// SELECT foo FROM bar
// placeholder testconstparser=require('js-sql-parser');constast=parser.parse('select ${a} as a');ast['value']['selectItems']['value'][0]['value']="'value'";console.log(parser.stringify(ast));// SELECT 'value' AS a
Note: PlaceHolder is anliteral
value but not anidentifier
. Table_name / column_name / function_name areidentifier
thus should NOT be placed with placeholder.
<scriptsrc="./dist/parser/sqlParser.js"><script/>var sqlParser = window.sqlParser;var ast = sqlParser.parse('select * from dual');var sql = sqlParser.stringify(ast);
...
- Hexadecimal Literals as x'01af' X'01af', but 0x01af is supported.
- keyword COLLATE.
- parammarker: keyword PREPARE / EXECUTE / DEALLOCATE
- variable: keyword SET / CREATE PROCEDURE / CREATE FUNCTION
- identifier expr: ODBC escape syntax
- matchexpr: Full-Text Search Functions. // to support
- intervalexpr: Date INTERVAL keyword. // to support
- into outfile: INTO OUTFILE keyword. // to support
- Run
npm run build
to build the distributable.
MIT
About
SQL(select) parser written with jison. parse SQL into abstract syntax tree(AST) and stringify back to SQL. sql grammar followshttps://dev.mysql.com/doc/refman/5.7/en/select.html
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors8
Uh oh!
There was an error while loading.Please reload this page.