Просмотр исходного кода

HUE-9372. [frontend] Auto complete values for LIMIT Clause (sree)

sreenaths 5 лет назад
Родитель
Сommit
97fb3b3043

+ 8 - 8
Makefile

@@ -279,35 +279,35 @@ ace:
 # <<<< DEV ONLY
 # <<<< DEV ONLY
 .PHONY: global-search-parser
 .PHONY: global-search-parser
 global-search-parser:
 global-search-parser:
-	@pushd tools/jison/ && node tools/jison/generateParsers.js globalSearchParser && popd
+	@pushd tools/jison/ && npm install && node generateParsers.js globalSearchParser && popd
 
 
 .PHONY: solr-all-parsers
 .PHONY: solr-all-parsers
 solr-all-parsers:
 solr-all-parsers:
-	@pushd tools/jison/ && node tools/jison/generateParsers.js solrQueryParser solrFormulaParser && popd
+	@pushd tools/jison/ && npm install  && node generateParsers.js solrQueryParser solrFormulaParser && popd
 
 
 .PHONY: solr-query-parser
 .PHONY: solr-query-parser
 solr-query-parser:
 solr-query-parser:
-	@pushd tools/jison/ && node tools/jison/generateParsers.js solrQueryParser && popd
+	@pushd tools/jison/ && npm install  && node generateParsers.js solrQueryParser && popd
 
 
 .PHONY: solr-formula-parser
 .PHONY: solr-formula-parser
 solr-formula-parser:
 solr-formula-parser:
-	@pushd tools/jison/ && node tools/jison/generateParsers.js solrFormulaParser && popd
+	@pushd tools/jison/ && npm install  && node generateParsers.js solrFormulaParser && popd
 
 
 .PHONY: sql-all-parsers
 .PHONY: sql-all-parsers
 sql-all-parsers:
 sql-all-parsers:
-	@pushd tools/jison/ && node generateParsers.js generic hive impala && popd && popd
+	@pushd tools/jison/ && npm install  && node generateParsers.js generic hive impala && popd
 
 
 .PHONY: sql-autocomplete-parser
 .PHONY: sql-autocomplete-parser
 sql-autocomplete-parser:
 sql-autocomplete-parser:
-	@pushd tools/jison/ && node tools/jison/generateParsers.js genericAutocomp hiveAutocomp impalaAutocomp && popd
+	@pushd tools/jison/ && npm install  && node generateParsers.js genericAutocomp hiveAutocomp impalaAutocomp && popd
 
 
 .PHONY: sql-statement-parser
 .PHONY: sql-statement-parser
 sql-statement-parser:
 sql-statement-parser:
-	@pushd tools/jison/ && node tools/jison/generateParsers.js sqlStatementsParser && popd
+	@pushd tools/jison/ && npm install  && node generateParsers.js sqlStatementsParser && popd
 
 
 .PHONY: sql-syntax-parser
 .PHONY: sql-syntax-parser
 sql-syntax-parser:
 sql-syntax-parser:
-	@pushd tools/jison/ && node tools/jison/generateParsers.js genericSyntax hiveSyntax impalaSyntax && popd
+	@pushd tools/jison/ && npm install  && node generateParsers.js genericSyntax hiveSyntax impalaSyntax && popd
 # END DEV ONLY >>>>
 # END DEV ONLY >>>>
 
 
 ###################################
 ###################################

+ 3 - 0
desktop/core/src/desktop/js/parse/jison/sql/generic/sql_main.jison

@@ -1407,6 +1407,9 @@ LimitClause
 
 
 LimitClause_EDIT
 LimitClause_EDIT
  : 'LIMIT' 'CURSOR'
  : 'LIMIT' 'CURSOR'
+   {
+     parser.suggestKeywords([{ value: '10', weight: 10000 }, { value: '100', weight: 10000 }, { value: '1000', weight: 10000 }, { value: '5000', weight: 10000 }, { value: '10000', weight: 10000 }])
+   }
  ;
  ;
 
 
 SearchCondition
 SearchCondition

+ 3 - 0
desktop/core/src/desktop/js/parse/jison/sql/hive/sql_main.jison

@@ -2138,6 +2138,9 @@ LimitClause
 
 
 LimitClause_EDIT
 LimitClause_EDIT
  : 'LIMIT' 'CURSOR'
  : 'LIMIT' 'CURSOR'
+   {
+     parser.suggestKeywords([{ value: '10', weight: 10000 }, { value: '100', weight: 10000 }, { value: '1000', weight: 10000 }, { value: '5000', weight: 10000 }, { value: '10000', weight: 10000 }])
+   }
  ;
  ;
 
 
 SearchCondition
 SearchCondition

+ 1 - 0
desktop/core/src/desktop/js/parse/jison/sql/impala/sql_main.jison

@@ -2047,6 +2047,7 @@ LimitClause
 LimitClause_EDIT
 LimitClause_EDIT
  : 'LIMIT' 'CURSOR'
  : 'LIMIT' 'CURSOR'
    {
    {
+     parser.suggestKeywords([{ value: '10', weight: 10000 }, { value: '100', weight: 10000 }, { value: '1000', weight: 10000 }, { value: '5000', weight: 10000 }, { value: '10000', weight: 10000 }])
      parser.suggestFunctions({ types: ['BIGINT'] });
      parser.suggestFunctions({ types: ['BIGINT'] });
    }
    }
  | 'LIMIT' ValueExpression_EDIT
  | 'LIMIT' ValueExpression_EDIT

Разница между файлами не показана из-за своего большого размера
+ 5 - 0
desktop/core/src/desktop/js/parse/sql/generic/genericAutocompleteParser.js


Разница между файлами не показана из-за своего большого размера
+ 5 - 0
desktop/core/src/desktop/js/parse/sql/generic/genericSyntaxParser.js


+ 3 - 2
desktop/core/src/desktop/js/parse/sql/generic/test/genericAutocompleteParser.Select.test.js

@@ -4638,13 +4638,14 @@ describe('genericAutocompleteParser.js SELECT statements', () => {
   });
   });
 
 
   describe('LIMIT clause', () => {
   describe('LIMIT clause', () => {
-    it('should not suggest anything for "SELECT COUNT(*) AS boo FROM testTable GROUP BY baa LIMIT |"', () => {
+    it('should suggest values for "SELECT COUNT(*) AS boo FROM testTable GROUP BY baa LIMIT |"', () => {
       assertAutoComplete({
       assertAutoComplete({
         beforeCursor: 'SELECT COUNT(*) AS boo FROM testTable GROUP BY baa LIMIT ',
         beforeCursor: 'SELECT COUNT(*) AS boo FROM testTable GROUP BY baa LIMIT ',
         afterCursor: '',
         afterCursor: '',
         noErrors: true,
         noErrors: true,
         expectedResult: {
         expectedResult: {
-          lowerCase: false
+          lowerCase: false,
+          suggestKeywords: ['10', '100', '1000', '10000', '5000']
         }
         }
       });
       });
     });
     });

Разница между файлами не показана из-за своего большого размера
+ 5 - 0
desktop/core/src/desktop/js/parse/sql/hive/hiveAutocompleteParser.js


Разница между файлами не показана из-за своего большого размера
+ 5 - 0
desktop/core/src/desktop/js/parse/sql/hive/hiveSyntaxParser.js


+ 3 - 2
desktop/core/src/desktop/js/parse/sql/hive/test/hiveAutocompleteParser.Select.test.js

@@ -5949,13 +5949,14 @@ describe('hiveAutocompleteParser.js SELECT statements', () => {
       });
       });
     });
     });
 
 
-    it('should not suggest anything for "SELECT COUNT(*) AS boo FROM testTable GROUP BY baa LIMIT |"', () => {
+    it('should suggest values for "SELECT COUNT(*) AS boo FROM testTable GROUP BY baa LIMIT |"', () => {
       assertAutoComplete({
       assertAutoComplete({
         beforeCursor: 'SELECT COUNT(*) AS boo FROM testTable GROUP BY baa LIMIT ',
         beforeCursor: 'SELECT COUNT(*) AS boo FROM testTable GROUP BY baa LIMIT ',
         afterCursor: '',
         afterCursor: '',
         noErrors: true,
         noErrors: true,
         expectedResult: {
         expectedResult: {
-          lowerCase: false
+          lowerCase: false,
+          suggestKeywords: ['10', '100', '1000', '10000', '5000']
         }
         }
       });
       });
     });
     });

Разница между файлами не показана из-за своего большого размера
+ 7 - 1
desktop/core/src/desktop/js/parse/sql/impala/impalaAutocompleteParser.js


Разница между файлами не показана из-за своего большого размера
+ 7 - 1
desktop/core/src/desktop/js/parse/sql/impala/impalaSyntaxParser.js


+ 3 - 2
desktop/core/src/desktop/js/parse/sql/impala/test/impalaAutocompleteParser.Select.test.js

@@ -5525,14 +5525,15 @@ describe('impalaAutocompleteParser.js SELECT statements', () => {
   });
   });
 
 
   describe('LIMIT clause', () => {
   describe('LIMIT clause', () => {
-    it('should not suggest columns for "SELECT COUNT(*) AS boo FROM testTable GROUP BY baa LIMIT |"', () => {
+    it('should suggest values for "SELECT COUNT(*) AS boo FROM testTable GROUP BY baa LIMIT |"', () => {
       assertAutoComplete({
       assertAutoComplete({
         beforeCursor: 'SELECT COUNT(*) AS boo FROM testTable GROUP BY baa LIMIT ',
         beforeCursor: 'SELECT COUNT(*) AS boo FROM testTable GROUP BY baa LIMIT ',
         afterCursor: '',
         afterCursor: '',
         noErrors: true,
         noErrors: true,
         expectedResult: {
         expectedResult: {
           lowerCase: false,
           lowerCase: false,
-          suggestFunctions: { types: ['BIGINT'] }
+          suggestFunctions: { types: ['BIGINT'] },
+          suggestKeywords: ['10', '100', '1000', '10000', '5000']
         }
         }
       });
       });
     });
     });

Некоторые файлы не были показаны из-за большого количества измененных файлов