Package Exports
- js-sql-parser
- js-sql-parser/dist/parser/sqlParser.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (js-sql-parser) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
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