- 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.