Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
0.12.0
-
None
Description
When creating a table, Hive uses URI to represent location:
if (crtTbl.getLocation() != null) { tbl.setDataLocation(new Path(crtTbl.getLocation()).toUri()); }
When adding a partition, Hive uses Path to represent location:
// 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());
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.
Attachments
Attachments
Issue Links
- links to