Преглед изворни кода

HUE-9464 [editor] Update Hive ALTER parser with the latest syntax

Johan Ahlen пре 5 година
родитељ
комит
ab96d016cb

+ 8 - 2
desktop/core/src/desktop/js/parse/jison/sql/hive/alter/alter_table.jison

@@ -170,13 +170,14 @@ AlterTable_EDIT
        'CLUSTERED BY', 'CONCATENATE', 'COMPACT', 'DISABLE NO_DROP', 'DISABLE OFFLINE', 'DROP', 'ENABLE NO_DROP',
        'CLUSTERED BY', 'CONCATENATE', 'COMPACT', 'DISABLE NO_DROP', 'DISABLE OFFLINE', 'DROP', 'ENABLE NO_DROP',
        'ENABLE OFFLINE', 'EXCHANGE PARTITION', 'NOT SKEWED', 'NOT STORED AS DIRECTORIES', 'PARTITION',
        'ENABLE OFFLINE', 'EXCHANGE PARTITION', 'NOT SKEWED', 'NOT STORED AS DIRECTORIES', 'PARTITION',
        'RECOVER PARTITIONS', 'RENAME TO', 'REPLACE COLUMNS', 'SET FILEFORMAT', 'SET LOCATION', 'SET OWNER', 'SET SERDE',
        'RECOVER PARTITIONS', 'RENAME TO', 'REPLACE COLUMNS', 'SET FILEFORMAT', 'SET LOCATION', 'SET OWNER', 'SET SERDE',
-       'SET SERDEPROPERTIES', 'SET SKEWED LOCATION', 'SET TBLPROPERTIES', 'SKEWED BY', 'TOUCH', 'UNARCHIVE PARTITION']);
+       'SET SERDEPROPERTIES', 'SET SKEWED LOCATION', 'SET TBLPROPERTIES', 'SKEWED BY', 'TOUCH', 'UNARCHIVE PARTITION',
+       'UNSET SERDEPROPERTIES']);
    }
    }
  | AlterTableLeftSide PartitionSpec 'CURSOR'
  | AlterTableLeftSide PartitionSpec 'CURSOR'
    {
    {
      parser.suggestKeywords(['ADD COLUMNS', 'CHANGE', 'COMPACT', 'CONCATENATE', 'DISABLE NO_DROP', 'DISABLE OFFLINE',
      parser.suggestKeywords(['ADD COLUMNS', 'CHANGE', 'COMPACT', 'CONCATENATE', 'DISABLE NO_DROP', 'DISABLE OFFLINE',
        'ENABLE NO_DROP', 'ENABLE OFFLINE', 'RENAME TO PARTITION', 'REPLACE COLUMNS', 'SET FILEFORMAT', 'SET LOCATION',
        'ENABLE NO_DROP', 'ENABLE OFFLINE', 'RENAME TO PARTITION', 'REPLACE COLUMNS', 'SET FILEFORMAT', 'SET LOCATION',
-       'SET SERDE', 'SET SERDEPROPERTIES']);
+       'SET SERDE', 'SET SERDEPROPERTIES', 'UNSET SERDEPROPERTIES']);
    }
    }
  | AlterTableLeftSide PartitionSpec AddOrReplace 'CURSOR'
  | AlterTableLeftSide PartitionSpec AddOrReplace 'CURSOR'
    {
    {
@@ -199,6 +200,10 @@ AlterTable_EDIT
    {
    {
      parser.suggestDatabases({ appendDot: true });
      parser.suggestDatabases({ appendDot: true });
    }
    }
+ | AlterTableLeftSide 'UNSET' 'CURSOR'
+   {
+     parser.suggestKeywords(['SERDEPROPERTIES']);
+   }
  ;
  ;
 
 
 AlterTableLeftSide
 AlterTableLeftSide
@@ -228,6 +233,7 @@ PartitionOperations
  | 'SET' 'TBLPROPERTIES' ParenthesizedPropertyAssignmentList
  | 'SET' 'TBLPROPERTIES' ParenthesizedPropertyAssignmentList
  | 'SET' 'SERDE' QuotedValue OptionalWithSerdeproperties
  | 'SET' 'SERDE' QuotedValue OptionalWithSerdeproperties
  | 'SET' 'SERDEPROPERTIES' ParenthesizedPropertyAssignmentList
  | 'SET' 'SERDEPROPERTIES' ParenthesizedPropertyAssignmentList
+ | 'UNSET' 'SERDEPROPERTIES' ParenthesizedPropertyAssignmentList
  | AddReplaceColumns
  | AddReplaceColumns
  | 'CONCATENATE'
  | 'CONCATENATE'
  | 'COMPACT' QuotedValue OptionalAndWait OptionalWithOverwriteTblProperties
  | 'COMPACT' QuotedValue OptionalAndWait OptionalWithOverwriteTblProperties

+ 1 - 0
desktop/core/src/desktop/js/parse/jison/sql/hive/sql.jisonlex

@@ -290,6 +290,7 @@ STORED\s+AS\s+DIRECTORIES            { return 'STORED_AS_DIRECTORIES'; }
 'UNARCHIVE'                          { return 'UNARCHIVE'; }
 'UNARCHIVE'                          { return 'UNARCHIVE'; }
 'UNIONTYPE'                          { return 'UNIONTYPE'; }
 'UNIONTYPE'                          { return 'UNIONTYPE'; }
 'UNIQUE'                             { return 'UNIQUE'; }
 'UNIQUE'                             { return 'UNIQUE'; }
+'UNSET'                              { return 'UNSET'; }
 'USE'                                { parser.determineCase(yytext); parser.addStatementTypeLocation('USE', yylloc); return 'USE'; }
 'USE'                                { parser.determineCase(yytext); parser.addStatementTypeLocation('USE', yylloc); return 'USE'; }
 'VECTORIZATION'                      { return 'VECTORIZATION'; }
 'VECTORIZATION'                      { return 'VECTORIZATION'; }
 'VIEW'                               { return 'VIEW'; }
 'VIEW'                               { return 'VIEW'; }

+ 2 - 0
desktop/core/src/desktop/js/parse/jison/sql/presto/sql.jisonlex

@@ -211,6 +211,7 @@ DOUBLE\s+PRECISION                   { return 'DOUBLE_PRECISION'; }
 'LOCATION'                           { this.begin('hdfs'); return 'LOCATION'; }
 'LOCATION'                           { this.begin('hdfs'); return 'LOCATION'; }
 'LOCK'                               { return 'LOCK'; }
 'LOCK'                               { return 'LOCK'; }
 'LOCKS'                              { return 'LOCKS'; }
 'LOCKS'                              { return 'LOCKS'; }
+'MANAGEDLOCATION'                    { this.begin('hdfs'); return 'MANAGEDLOCATION'; }
 'MATCHED'                            { return 'MATCHED'; }
 'MATCHED'                            { return 'MATCHED'; }
 'MERGE'                              { return 'MERGE'; }
 'MERGE'                              { return 'MERGE'; }
 'METADATA'                           { return 'METADATA'; }
 'METADATA'                           { return 'METADATA'; }
@@ -277,6 +278,7 @@ STORED\s+AS\s+DIRECTORIES            { return 'STORED_AS_DIRECTORIES'; }
 'TRANSACTIONS'                       { return 'TRANSACTIONS'; }
 'TRANSACTIONS'                       { return 'TRANSACTIONS'; }
 'UNARCHIVE'                          { return 'UNARCHIVE'; }
 'UNARCHIVE'                          { return 'UNARCHIVE'; }
 'UNIONTYPE'                          { return 'UNIONTYPE'; }
 'UNIONTYPE'                          { return 'UNIONTYPE'; }
+'UNSET'                              { return 'UNSET'; }
 'USE'                                { parser.determineCase(yytext); return 'USE'; }
 'USE'                                { parser.determineCase(yytext); return 'USE'; }
 'VIEW'                               { return 'VIEW'; }
 'VIEW'                               { return 'VIEW'; }
 'WAIT'                               { return 'WAIT'; }
 'WAIT'                               { return 'WAIT'; }

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

@@ -210,6 +210,7 @@ NonReservedKeyword
  | 'TRANSACTIONS'
  | 'TRANSACTIONS'
  | 'UNARCHIVE'
  | 'UNARCHIVE'
  | 'UNIONTYPE'
  | 'UNIONTYPE'
+ | 'UNSET'
  | 'USE'
  | 'USE'
  | 'USER'
  | 'USER'
  | 'VIEW'
  | 'VIEW'
@@ -389,6 +390,7 @@ NonStartingToken
  | 'LOCK'
  | 'LOCK'
  | 'LOCKS'
  | 'LOCKS'
  | 'MACRO'
  | 'MACRO'
+ | 'MANAGEDLOCATION'
  | 'MAP'
  | 'MAP'
  | 'MATCHED'
  | 'MATCHED'
  | 'MAX'
  | 'MAX'
@@ -480,6 +482,7 @@ NonStartingToken
  | 'TRUE'
  | 'TRUE'
  | 'UNION'
  | 'UNION'
  | 'UNIONTYPE'
  | 'UNIONTYPE'
+ | 'UNSET'
  | 'UNSIGNED_INTEGER'
  | 'UNSIGNED_INTEGER'
  | 'UNSIGNED_INTEGER_E'
  | 'UNSIGNED_INTEGER_E'
  | 'USER'
  | 'USER'

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
desktop/core/src/desktop/js/parse/sql/hive/hiveAutocompleteParser.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
desktop/core/src/desktop/js/parse/sql/hive/hiveSyntaxParser.js


+ 15 - 2
desktop/core/src/desktop/js/parse/sql/hive/test/hiveAutocompleteParser.Alter.test.js

@@ -442,7 +442,8 @@ describe('hiveAutocompleteParser.js ALTER statements', () => {
             'SET TBLPROPERTIES',
             'SET TBLPROPERTIES',
             'SKEWED BY',
             'SKEWED BY',
             'TOUCH',
             'TOUCH',
-            'UNARCHIVE PARTITION'
+            'UNARCHIVE PARTITION',
+            'UNSET SERDEPROPERTIES',
           ]
           ]
         }
         }
       });
       });
@@ -1059,7 +1060,8 @@ describe('hiveAutocompleteParser.js ALTER statements', () => {
             'SET FILEFORMAT',
             'SET FILEFORMAT',
             'SET LOCATION',
             'SET LOCATION',
             'SET SERDE',
             'SET SERDE',
-            'SET SERDEPROPERTIES'
+            'SET SERDEPROPERTIES',
+            'UNSET SERDEPROPERTIES'
           ]
           ]
         }
         }
       });
       });
@@ -1668,6 +1670,17 @@ describe('hiveAutocompleteParser.js ALTER statements', () => {
         }
         }
       });
       });
     });
     });
+
+    it('should suggest keywords for "ALTER TABLE bar UNSET |"', () => {
+      assertAutoComplete({
+        beforeCursor: 'ALTER TABLE bar UNSET ',
+        afterCursor: '',
+        expectedResult: {
+          lowerCase: false,
+          suggestKeywords: ['SERDEPROPERTIES']
+        }
+      });
+    });
   });
   });
 
 
   describe('ALTER VIEW', () => {
   describe('ALTER VIEW', () => {

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
desktop/core/src/desktop/js/parse/sql/presto/prestoAutocompleteParser.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
desktop/core/src/desktop/js/parse/sql/presto/prestoSyntaxParser.js


Неке датотеке нису приказане због велике количине промена