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)

Reply via email to