add hive sql automComplate

This commit is contained in:
HSunboy 2018-08-27 11:03:13 +08:00
parent 9c527994ab
commit 34290d2a3a
4 changed files with 9337 additions and 15 deletions

File diff suppressed because one or more lines are too long

36
jison/hue-sql-autocomplete.sh Executable file
View File

@ -0,0 +1,36 @@
#!/bin/bash
# Licensed to Cloudera, Inc. under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. Cloudera, Inc. licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
echo "Make sure you install jison first (npm install jison -g)"
echo ""
echo "Generating parser..."
pushd jison
# For quick version of just SELECT statements without value expressions
# cat autocomplete_header.jison sql_main.jison autocomplete_footer.jison > sqlAutocompleteParser.jison
cat autocomplete_header.jison sql_main.jison sql_valueExpression.jison sql_error.jison sql_alter.jison sql_analyze.jison sql_create.jison sql_drop.jison sql_grant.jison sql_insert.jison sql_load.jison sql_set.jison sql_show.jison sql_update.jison sql_use.jison autocomplete_footer.jison > sqlAutocompleteParser.jison
echo "Creating SQL autocomplete parser..."
jison sqlAutocompleteParser.jison sql.jisonlex
grunt uglify:sqlAutocompleteParser
cat sqlParseSupport.js sqlAutocompleteParser.js > ../core/sqlAutoCompleteParser.js
rm sqlAutocompleteParser.jison
rm sqlAutocompleteParser.js
popd
echo "Done!"

View File

@ -1,6 +1,7 @@
const Parser = require('../core/astParser');
const Cache = require("../core/cache");
const dtSqlParser=require("../core/sqlSyntaxParser");
const sqlSyntaxParser = require("../core/sqlSyntaxParser");
const sqlAutoCompleteParser = require("../core/sqlAutoCompleteParser");
const filter = require("./filter");
@ -28,8 +29,16 @@ function parseSyntax(sql,type){
if (typeof type == "undefined") {
type = "hive"
}
return dtSqlParser.parser.parseSyntax(sql,'',type,false)
return sqlSyntaxParser.parser.parseSyntax(sql, '', type, false)
}
function parserSql(sql, type) {
if (typeof type == "undefined") {
type = "hive"
}
return sqlAutoCompleteParser.parser.parseSql(sql, '', type, false)
}
exports.parse = parse;
exports.parseSyntax = parseSyntax;
exports.parserSql = parserSql;

0
peg/autoComplete.pegjs Normal file
View File