Urmas Tamassy created HIVE-22660: ------------------------------------ Summary: HDFS path is encoded twice when inserting to a partitioned table using dynamic partitions. Key: HIVE-22660 URL: https://issues.apache.org/jira/browse/HIVE-22660 Project: Hive Issue Type: Bug Components: HiveServer2, Query Planning Affects Versions: 2.1.1 Reporter: Urmas Tamassy Attachments: details.txt
Tested on CDH 5.16.1 (Hive 1.1) and CDH 6.3 (Hive 2.2.1). When file merging is enabled, ie. hive.merge.mapfiles or hive.merge.mapredfiles is true (or in case of spark hive.merge.sparkfiles), under specific conditions (see: [ConditionalResolverMergeFiles|https://github.com/apache/hive/blob/e06bf8d273f3e391b269da4d3217f12bbc165cfc/ql/src/java/org/apache/hadoop/hive/ql/plan/ConditionalResolverMergeFiles.java#L207], option 3.) on insert commands to partitioned tables, if Hive merges some partition files in a second job and moves the ones that do not need to be merged from the first jobs result, then the ones that can be moved are moved twice. This seems to cause file paths to be encoded twice as well ([FileUtils#escapePathName()|https://github.com/apache/hive/blob/f37c5de6c32b9395d1b34fa3c02ed06d1bfbf6eb/common/src/java/org/apache/hadoop/hive/common/FileUtils.java#L271]) . For example, this can cause issues with partition values such as 'A:B' and 'C:D' to be encoded as 'A%3AB' for one partition path correctly and as 'C%253AD' for the other partition incorrectly. -- This message was sent by Atlassian Jira (v8.3.4#803005)