1.6.0 • Published 2 months ago
js-sql-parser v1.6.0
js-sql-parser
parse / stringify sql (select grammar) in js.
sql grammar follows https://dev.mysql.com/doc/refman/5.7/en/select.html
news
- Unicode extended char support for column name or alias & Function call in
table_factor
since v1.6.0 - 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 see CHANGELOG
commonjs usage
npm install --save js-sql-parser
const parser = require('js-sql-parser');
const ast = 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 test
const parser = require('js-sql-parser');
const ast = 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 an literal
value but not an identifier
. Table_name / column_name / function_name are identifier
thus should NOT be placed with placeholder.
script tag
<script src="./dist/parser/sqlParser.js"><script/>
var sqlParser = window.sqlParser;
var ast = sqlParser.parse('select * from dual');
var sql = sqlParser.stringify(ast);
AMD supported
...
unsupported grammar currently
- 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
Build
- Run
npm run build
to build the distributable.
LICENSE
MIT
1.6.0
2 months ago
1.5.0
6 months ago
1.4.1
3 years ago
1.4.0
3 years ago
1.3.0
4 years ago
1.2.2
4 years ago
1.2.1
5 years ago
1.1.1
5 years ago
1.0.9
5 years ago
1.2.0
5 years ago
1.1.0
5 years ago
1.0.8
5 years ago
1.0.7
6 years ago
1.0.6
6 years ago
1.0.5
6 years ago
1.0.4
6 years ago
1.0.3
6 years ago
1.0.2
6 years ago
1.0.1
7 years ago
1.0.0
7 years ago
1.0.0-alpha.1
7 years ago
1.0.0-alpha.0
7 years ago