Переглянути джерело

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


Деякі файли не було показано, через те що забагато файлів було змінено