From a8dd96b39e28f7950d0e3ce6aa80f8ad2ad08814 Mon Sep 17 00:00:00 2001 From: HSunboy Date: Mon, 8 Oct 2018 17:58:36 +0800 Subject: [PATCH] improve doc --- README.md | 29 +++++++++++++++++++++++++---- lib/filter.js | 6 +++--- 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index e21a824..d885f3a 100644 --- a/README.md +++ b/README.md @@ -3,9 +3,9 @@ 本项目用于处理sql,目前含有功能 1. 解析sql生成语法树(不支持CREATE等语句,具体可以查看`core/astParser`文件),支持单条sql语句 -2. 去除sql中的的注释(目前支持`--`,`/**/`类型注释) +2. 校验sql,hive sql,impala sql等语法,并给予错误信息与建议提示 3. sql分割,根据`;`将sql分割为数组 -4. 校验sql,hive sql等语法,并给予错误信息与建议提示 +4. 去除sql中的的注释(目前支持`--`,`/**/`类型注释) ## 用法 @@ -70,6 +70,27 @@ console.log(dtSqlParser.parseSyntax("selet * form",'hive')); */ ``` -sql语法解析模块代码来自[nquery](https://github.com/alibaba/nquery/) +## API -hive语法解析模块代码来自[Hue](https://github.com/cloudera/hue) +### filter + +#### function filterComments(sql:string):string +过滤sql注释(支持/*和--) + +#### function splitSql(sql:string):Array +自动去除注释,并且提取出各个sql + +### parser + +#### function parseSyntax(sql:string|Array, type?:string):Object|boolean +校验sql语法,如果没错误,则返回false,否则返回错误详细信息 +可以提供一个含有两个字符串的数组,代表被光标分割的两个sql片段 + +#### function parserSql(sql:string|Array, type?:string):Object +解析sql语法,根据上下文提示补全字段与其它辅助信息 +可以提供一个含有两个字符串的数组,代表被光标分割的两个sql片段 + + +ast生成代码来自[nquery](https://github.com/alibaba/nquery/) + +hive,impala等语法解析文件来自[Hue](https://github.com/cloudera/hue) diff --git a/lib/filter.js b/lib/filter.js index 6b8b7e5..bf5a133 100644 --- a/lib/filter.js +++ b/lib/filter.js @@ -19,10 +19,10 @@ function cleanSql(sql) { /** * 分割sql - * @param {String} sqlText + * @param {String} sql */ -function splitSql(sqlText) { - return commentFilter.parse(sqlText).lines +function splitSql(sql) { + return commentFilter.parse(sql).lines } exports.filterComments = filterComments;