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