浏览代码

HUE-4758 [editor] The autocompleter should suggest keywords at the start of a statement

Johan Ahlen 9 年之前
父节点
当前提交
8208bb3

+ 13 - 0
desktop/core/src/desktop/static/desktop/js/autocomplete/jison/sql_error.jison

@@ -19,6 +19,19 @@ SqlStatements
  | NonStartingToken error // Having just ': error' does not work for some reason, jison bug?
  ;
 
+SqlStatement_EDIT
+ : AnyCursor error
+   {
+     if (isHive()) {
+       suggestDdlAndDmlKeywords(['EXPLAIN', 'FROM']);
+     } else if (isImpala()) {
+       suggestDdlAndDmlKeywords(['EXPLAIN']);
+     } else {
+       suggestDdlAndDmlKeywords();
+     }
+   }
+ ;
+
 SelectStatement
  : 'SELECT' OptionalAllOrDistinct SelectList_ERROR TableExpression
  | 'SELECT' OptionalAllOrDistinct SelectList TableExpression_ERROR

文件差异内容过多而无法显示
+ 0 - 0
desktop/core/src/desktop/static/desktop/js/autocomplete/sql.js


+ 22 - 0
desktop/core/src/desktop/static/desktop/spec/autocomplete/sqlSpec.js

@@ -197,6 +197,28 @@ define([
           }
         });
       });
+
+      it('should suggest keywords for "| * FROM boo; SELECT LIMIT 10"', function() {
+        assertAutoComplete({
+          beforeCursor: '',
+          afterCursor: ' * FROM boo; SELECT LIMIT 10',
+          containsKeywords: ['SELECT'],
+          expectedResult: {
+            lowerCase: false
+          }
+        });
+      });
+
+      it('should suggest keywords for "bla| * FROM boo; SELECT LIMIT 10"', function() {
+        assertAutoComplete({
+          beforeCursor: 'bla',
+          afterCursor: ' * FROM boo; SELECT LIMIT 10',
+          containsKeywords: ['SELECT'],
+          expectedResult: {
+            lowerCase: false
+          }
+        });
+      });
     });
 
     describe('EXPLAIN', function () {

部分文件因为文件数量过多而无法显示