Go to file
2018-07-06 16:30:10 +08:00
core 用pegjs重写sql分割方法 2018-07-06 16:22:57 +08:00
lib 用pegjs重写sql分割方法 2018-07-06 16:22:57 +08:00
peg 用pegjs重写sql分割方法 2018-07-06 16:22:57 +08:00
test ignore 2018-07-06 16:28:54 +08:00
utils init 2018-07-02 18:01:01 +08:00
.DS_Store add peg source file 2018-07-03 11:33:53 +08:00
.gitignore add 2018-07-06 16:30:10 +08:00
index.js add new comment 2018-07-02 19:36:09 +08:00
package-lock.json add peg source file 2018-07-03 11:33:53 +08:00
package.json 用pegjs重写过滤逻辑 2018-07-05 11:16:30 +08:00
README.md 用pegjs重写sql分割方法 2018-07-06 16:22:57 +08:00

dt-sql-parser

本项目用于处理sql目前含有功能

  1. 解析sql生成语法树(不支持CREATE等语句具体可以查看core/astParser文件)支持单条sql语句
  2. 去除sql中的的注释(目前支持--,/**/类型注释)
  3. sql分割,根据;将sql分割为数组

用法

过滤注释 / sql分割

const dtFilter=require("dt-sql-parser").filter;
const sql=`
/*sttttttttart*/create table /*hhhhhhhh
hhhhhh
aaaaaa*/ sql_task_comment_test(id int comment 'id') comment 'sql test';
    --eeeeeeeend
`
console.log(dtFilter.filterComments(sql))//过滤注释
console.log(dtFilter.splitSql(sql));//分割sql

生成ast树

const dtFilter=require("dt-sql-parser").parser;
const sql=`
/*sttttttttart*/select userId as id,name /*hhhhhhhh
hhhhhh
aaaaaa*/ from user where isDeleted=0
    --eeeeeeeend
`
console.log(dtFilter.parse(sql))//注意目前只支持单条sql语句所以需要自己调用sql分割一条一条处理

语法解析模块代码来自nquery