[
https://issues.apache.org/jira/browse/HIVE-6185?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13869170#comment-13869170
]
Mohammad Kamrul Islam commented on HIVE-6185:
---------------------------------------------
Patch looks good!
Few comments:
1. In Partition::setBucketCount(),
FileSystem fs = FileSystem.get(getDataLocation().toUri(), Hive.get().getConf())
can be rewritten as (to make it consistent for other places):
FileSystem fs = getDataLocation().getFileSystem(Hive.get().getConf());
2. Same thing in SamplePruner:: limitPrune()
FileSystem fs = FileSystem.get(part.getDataLocation().toUri(), Hive.get()
.getConf());
can be rewritten as
FileSystem fs = part.getDataLocation().getFileSystem(Hive.get().getConf());
3. In Partition.java
A new method "public Path getDataLocation() " is introduced. Is it replacing
"public Path getPartitionPath() " or "final public URI getDataLocation()"? If
it is the later one, do we need to keep the "final" modifier?
> 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
> Attachments: HIVE-6185.1.patch, HIVE-6185.2.patch, HIVE-6185.patch,
> HIVE-6185.patch
>
>
> 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)