aboutsummaryrefslogtreecommitdiff
path: root/sql/catalyst/src
diff options
context:
space:
mode:
authorgatorsmile <gatorsmile@gmail.com>2016-04-24 18:53:27 +0200
committerHerman van Hovell <hvanhovell@questtec.nl>2016-04-24 18:53:27 +0200
commit337289d7128be100103fce10ec7747ad5bc9cbf0 (patch)
tree32c4abf808fab6afb021355ca6e4cf510ef3cc27 /sql/catalyst/src
parent8df8a81825709dbefe5aecd7642748c1b3a38e99 (diff)
downloadspark-337289d7128be100103fce10ec7747ad5bc9cbf0.tar.gz
spark-337289d7128be100103fce10ec7747ad5bc9cbf0.tar.bz2
spark-337289d7128be100103fce10ec7747ad5bc9cbf0.zip
[SPARK-14691][SQL] Simplify and Unify Error Generation for Unsupported Alter Table DDL
#### What changes were proposed in this pull request? So far, we are capturing each unsupported Alter Table in separate visit functions. They should be unified and issue the same ParseException instead. This PR is to refactor the existing implementation and make error message consistent for Alter Table DDL. #### How was this patch tested? Updated the existing test cases and also added new test cases to ensure all the unsupported statements are covered. Author: gatorsmile <gatorsmile@gmail.com> Author: xiaoli <lixiao1983@gmail.com> Author: Xiao Li <xiaoli@Xiaos-MacBook-Pro.local> Closes #12459 from gatorsmile/cleanAlterTable.
Diffstat (limited to 'sql/catalyst/src')
-rw-r--r--sql/catalyst/src/main/antlr4/org/apache/spark/sql/catalyst/parser/SqlBase.g428
1 files changed, 13 insertions, 15 deletions
diff --git a/sql/catalyst/src/main/antlr4/org/apache/spark/sql/catalyst/parser/SqlBase.g4 b/sql/catalyst/src/main/antlr4/org/apache/spark/sql/catalyst/parser/SqlBase.g4
index 1908cea673..f96a86db02 100644
--- a/sql/catalyst/src/main/antlr4/org/apache/spark/sql/catalyst/parser/SqlBase.g4
+++ b/sql/catalyst/src/main/antlr4/org/apache/spark/sql/catalyst/parser/SqlBase.g4
@@ -69,34 +69,19 @@ statement
SET SERDE STRING (WITH SERDEPROPERTIES tablePropertyList)? #setTableSerDe
| ALTER TABLE tableIdentifier (partitionSpec)?
SET SERDEPROPERTIES tablePropertyList #setTableSerDe
- | ALTER TABLE tableIdentifier bucketSpec #bucketTable
- | ALTER TABLE tableIdentifier NOT CLUSTERED #unclusterTable
- | ALTER TABLE tableIdentifier NOT SORTED #unsortTable
- | ALTER TABLE tableIdentifier skewSpec #skewTable
- | ALTER TABLE tableIdentifier NOT SKEWED #unskewTable
- | ALTER TABLE tableIdentifier NOT STORED AS DIRECTORIES #unstoreTable
- | ALTER TABLE tableIdentifier
- SET SKEWED LOCATION skewedLocationList #setTableSkewLocations
| ALTER TABLE tableIdentifier ADD (IF NOT EXISTS)?
partitionSpecLocation+ #addTablePartition
| ALTER VIEW tableIdentifier ADD (IF NOT EXISTS)?
partitionSpec+ #addTablePartition
| ALTER TABLE tableIdentifier
from=partitionSpec RENAME TO to=partitionSpec #renameTablePartition
- | ALTER TABLE from=tableIdentifier
- EXCHANGE partitionSpec WITH TABLE to=tableIdentifier #exchangeTablePartition
| ALTER TABLE tableIdentifier
DROP (IF EXISTS)? partitionSpec (',' partitionSpec)* PURGE? #dropTablePartitions
| ALTER VIEW tableIdentifier
DROP (IF EXISTS)? partitionSpec (',' partitionSpec)* #dropTablePartitions
- | ALTER TABLE tableIdentifier ARCHIVE partitionSpec #archiveTablePartition
- | ALTER TABLE tableIdentifier UNARCHIVE partitionSpec #unarchiveTablePartition
| ALTER TABLE tableIdentifier partitionSpec?
SET FILEFORMAT fileFormat #setTableFileFormat
| ALTER TABLE tableIdentifier partitionSpec? SET locationSpec #setTableLocation
- | ALTER TABLE tableIdentifier TOUCH partitionSpec? #touchTable
- | ALTER TABLE tableIdentifier partitionSpec? COMPACT STRING #compactTable
- | ALTER TABLE tableIdentifier partitionSpec? CONCATENATE #concatenateTable
| ALTER TABLE tableIdentifier partitionSpec?
CHANGE COLUMN? oldName=identifier colType
(FIRST | AFTER after=identifier)? (CASCADE | RESTRICT)? #changeColumn
@@ -179,6 +164,19 @@ unsupportedHiveNativeCommands
| kw1=CREATE kw2=TEMPORARY kw3=MACRO
| kw1=DROP kw2=TEMPORARY kw3=MACRO
| kw1=MSCK kw2=REPAIR kw3=TABLE
+ | kw1=ALTER kw2=TABLE tableIdentifier kw3=NOT kw4=CLUSTERED
+ | kw1=ALTER kw2=TABLE tableIdentifier kw3=CLUSTERED kw4=BY
+ | kw1=ALTER kw2=TABLE tableIdentifier kw3=NOT kw4=SORTED
+ | kw1=ALTER kw2=TABLE tableIdentifier kw3=SKEWED kw4=BY
+ | kw1=ALTER kw2=TABLE tableIdentifier kw3=NOT kw4=SKEWED
+ | kw1=ALTER kw2=TABLE tableIdentifier kw3=NOT kw4=STORED kw5=AS kw6=DIRECTORIES
+ | kw1=ALTER kw2=TABLE tableIdentifier kw3=SET kw4=SKEWED kw5=LOCATION
+ | kw1=ALTER kw2=TABLE tableIdentifier kw3=EXCHANGE kw4=PARTITION
+ | kw1=ALTER kw2=TABLE tableIdentifier kw3=ARCHIVE kw4=PARTITION
+ | kw1=ALTER kw2=TABLE tableIdentifier kw3=UNARCHIVE kw4=PARTITION
+ | kw1=ALTER kw2=TABLE tableIdentifier kw3=TOUCH
+ | kw1=ALTER kw2=TABLE tableIdentifier partitionSpec? kw3=COMPACT
+ | kw1=ALTER kw2=TABLE tableIdentifier partitionSpec? kw3=CONCATENATE
;
createTableHeader