[ 
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)

Reply via email to