ALTER TABLE ADD PARTITION can't handle partition key names that conflict with
HQL keywords
------------------------------------------------------------------------------------------
Key: HIVE-1868
URL: https://issues.apache.org/jira/browse/HIVE-1868
Project: Hive
Issue Type: Bug
Components: Query Processor
Reporter: Carl Steinbach
{code}
hive> CREATE TABLE foo (a INT) PARTITIONED BY (`date` STRING);
OK
hive> DESCRIBE EXTENDED foo;
OK
a int
date string
Detailed Table Information
Table(tableName:foo, dbName:default, owner:carl, createTime:1293508187,
lastAccessTime:0, retention:0, sd:StorageDescriptor(cols:
[FieldSchema(name:a, type:int, comment:null),
FieldSchema(name:date, type:string, comment:null)],
location:file:/user/hive/warehouse/foo,
inputFormat:org.apache.hadoop.mapred.TextInputFormat,
outputFormat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat,
compressed:false, numBuckets:-1,
serdeInfo:SerDeInfo(name:null,
serializationLib:org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe,
parameters:{serialization.format=1}), bucketCols:[], sortCols:[],
parameters:{}),
partitionKeys:[FieldSchema(name:date, type:string, comment:null)],
parameters:{transient_lastDdlTime=1293508187}, viewOriginalText:null,
viewExpandedText:null, tableType:MANAGED_TABLE)
Time taken: 0.107 seconds
hive> ALTER TABLE foo ADD PARTITION (date='Feb 25 1980');
FAILED: Parse Error: line 1:31 mismatched input 'date' expecting Identifier in
add partition statement
10/12/27 19:50:13 ERROR ql.Driver: FAILED: Parse Error: line 1:31 mismatched
input 'date' expecting Identifier in add partition statement
org.apache.hadoop.hive.ql.parse.ParseException: line 1:31 mismatched input
'date' expecting Identifier in add partition statement
at
org.apache.hadoop.hive.ql.parse.ParseDriver.parse(ParseDriver.java:406)
at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:320)
at org.apache.hadoop.hive.ql.Driver.run(Driver.java:686)
at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:161)
at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:235)
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:450)
hive> ALTER TABLE foo ADD PARTITION (`date`='Feb 25 1980');
ALTER TABLE foo ADD PARTITION (`date`='Feb 25 1980');
10/12/27 19:50:22 INFO parse.ParseDriver: Parsing command: ALTER TABLE foo ADD
PARTITION (`date`='Feb 25 1980')
10/12/27 19:50:22 INFO parse.ParseDriver: Parse Completed
10/12/27 19:50:22 INFO metastore.HiveMetaStore: 0: get_table : db=default
tbl=foo
10/12/27 19:50:22 INFO hive.log: DDL: struct foo { i32 a}
10/12/27 19:50:22 INFO metastore.HiveMetaStore: 0: get_table : db=default
tbl=foo
10/12/27 19:50:22 INFO hive.log: DDL: struct foo { i32 a}
10/12/27 19:50:22 INFO ql.Driver: Semantic Analysis Completed
10/12/27 19:50:22 INFO ql.Driver: Returning Hive schema:
Schema(fieldSchemas:null, properties:null)
10/12/27 19:50:22 INFO ql.Driver: Starting command: ALTER TABLE foo ADD
PARTITION (`date`='Feb 25 1980')
10/12/27 19:50:22 INFO metastore.HiveMetaStore: 0: get_table : db=default
tbl=foo
10/12/27 19:50:22 INFO hive.log: DDL: struct foo { i32 a}
FAILED: Error in metadata: date not found in table's partition spec:
{`date`=Feb 25 1980}
10/12/27 19:50:22 ERROR exec.DDLTask: FAILED: Error in metadata: date not found
in table's partition spec: {`date`=Feb 25 1980}
org.apache.hadoop.hive.ql.metadata.HiveException: date not found in table's
partition spec: {`date`=Feb 25 1980}
at org.apache.hadoop.hive.ql.metadata.Table.isValidSpec(Table.java:348)
at org.apache.hadoop.hive.ql.metadata.Hive.getPartition(Hive.java:1165)
at org.apache.hadoop.hive.ql.metadata.Hive.getPartition(Hive.java:1147)
at org.apache.hadoop.hive.ql.exec.DDLTask.addPartition(DDLTask.java:395)
at org.apache.hadoop.hive.ql.exec.DDLTask.execute(DDLTask.java:230)
at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:130)
at
org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:57)
at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:988)
at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:825)
at org.apache.hadoop.hive.ql.Driver.run(Driver.java:698)
at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:161)
at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:235)
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:450)
FAILED: Execution Error, return code 1 from
org.apache.hadoop.hive.ql.exec.DDLTask
10/12/27 19:50:22 ERROR ql.Driver: FAILED: Execution Error, return code 1 from
org.apache.hadoop.hive.ql.exec.DDLTask
hive>
{code}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.