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)