Xuefu Zhang created HIVE-6185:
---------------------------------
Summary: DDLTask is inconsistent in creating a table and adding a
partition when dealing with location
Key: HIVE-6185
URL: https://issues.apache.org/jira/browse/HIVE-6185
Project: Hive
Issue Type: Bug
Components: Query Processor
Affects Versions: 0.12.0
Reporter: Xuefu Zhang
Assignee: Xuefu Zhang
When creating a table, Hive uses URI to represent location:
{code}
if (crtTbl.getLocation() != null) {
tbl.setDataLocation(new Path(crtTbl.getLocation()).toUri());
}
{code}
When adding a partition, Hive uses Path to represent location:
{code}
// set partition path relative to table
db.createPartition(tbl, addPartitionDesc.getPartSpec(), new Path(tbl
.getPath(), addPartitionDesc.getLocation()),
addPartitionDesc.getPartParams(),
addPartitionDesc.getInputFormat(),
addPartitionDesc.getOutputFormat(),
addPartitionDesc.getNumBuckets(),
addPartitionDesc.getCols(),
addPartitionDesc.getSerializationLib(),
addPartitionDesc.getSerdeParams(),
addPartitionDesc.getBucketCols(),
addPartitionDesc.getSortCols());
{code}
This disparity makes the values stored in metastore be encoded differently,
causing problems w.r.t. special character as demonstrated in HIVE-5446. As a
result, the code dealing with location for table is different for partition,
creating maintenance burden.
We need to standardize it to Path to be in line with other Path related cleanup
effort.
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)