[ https://issues.apache.org/jira/browse/HIVE-3594?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Phabricator updated HIVE-3594: ------------------------------ Attachment: HIVE-3594.D6081.1.patch navis requested code review of "HIVE-3594 [jira] When Group by Partition Column Type is Timestamp or STRING Which Format contains "HH:MM:SS", It will occur URISyntaxException". Reviewers: JIRA DPAL-1917 When Group by Partition Column Type is Timestamp or STRING Which Format contains "HH:MM:SS", It will occur URISyntaxException create table test (no int, name string) partitioned by (pts string) row format delimited fields terminated by ' '; load data local inpath '/opt/files/groupbyts1.txt' into table test partition(pts='12:11:30'); load data local inpath '/opt/files/groupbyts2.txt' into table test partition(pts='21:25:12'); load data local inpath '/opt/files/groupbyts3.txt' into table test partition(pts='12:11:30'); load data local inpath '/opt/files/groupbyts4.txt' into table test partition(pts='21:25:12'); when I execute “select * from test group by pts;”, it will occur as follows exception. at org.apache.hadoop.fs.Path.initialize(Path.java:157) at org.apache.hadoop.fs.Path.<init>(Path.java:135) at org.apache.hadoop.hive.ql.exec.Utilities.getInputSummary(Utilities.java:1667) at org.apache.hadoop.hive.ql.exec.MapRedTask.estimateNumberOfReducers(MapRedTask.java:432) at org.apache.hadoop.hive.ql.exec.MapRedTask.setNumberOfReducers(MapRedTask.java:400) at org.apache.hadoop.hive.ql.exec.MapRedTask.execute(MapRedTask.java:93) at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:135) at org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:57) at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1329) at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1121) at org.apache.hadoop.hive.ql.Driver.run(Driver.java:954) at org.apache.hadoop.hive.service.HiveServer$HiveServerHandler.execute(HiveServer.java:198) at org.apache.hadoop.hive.service.ThriftHive$Processor$execute.getResult(ThriftHive.java:630) at org.apache.hadoop.hive.service.ThriftHive$Processor$execute.getResult(ThriftHive.java:618) at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:32) at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:34) at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:176) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Caused by: java.net.URISyntaxException: Relative path in absolute URI: fake-path-metadata-only-query-default.test{pts=12:11:30%7D at java.net.URI.checkPath(URI.java:1788) at java.net.URI.<init>(URI.java:734) at org.apache.hadoop.fs.Path.initialize(Path.java:154) ... 19 more FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MapRedTask When PhysicalOptimizer optimizes GroupByOperator, according to default parameters "hive.optimize.metadataonly = true", MetadataOnlyOptimizer will be enabled. The MetadataOnlyOptimizer will change the partition alias desc. The partition alies "hdfs://160.165.0.1:9000/user/hive/warehouse/test/pts=12%3A11%3A30" is changed into " fake-path-metadata-only-query-default.test{pts=12:11:30}". When construct uri through new partition alies, it must occur java.net.URISyntaxException. TEST PLAN EMPTY REVISION DETAIL https://reviews.facebook.net/D6081 AFFECTED FILES ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/MetadataOnlyOptimizer.java ql/src/test/queries/clientpositive/metadataonly1.q ql/src/test/results/clientpositive/metadataonly1.q.out MANAGE HERALD DIFFERENTIAL RULES https://reviews.facebook.net/herald/view/differential/ WHY DID I GET THIS EMAIL? https://reviews.facebook.net/herald/transcript/14529/ To: JIRA, navis > When Group by Partition Column Type is Timestamp or STRING Which Format > contains "HH:MM:SS", It will occur URISyntaxException > ----------------------------------------------------------------------------------------------------------------------------- > > Key: HIVE-3594 > URL: https://issues.apache.org/jira/browse/HIVE-3594 > Project: Hive > Issue Type: Bug > Components: Query Processor > Affects Versions: 0.9.0 > Reporter: Daisy.Yuan > Attachments: HIVE-3594.D6081.1.patch > > > create table test (no int, name string) partitioned by (pts string) row > format delimited fields terminated by ' '; > load data local inpath '/opt/files/groupbyts1.txt' into table test > partition(pts='12:11:30'); > load data local inpath '/opt/files/groupbyts2.txt' into table test > partition(pts='21:25:12'); > load data local inpath '/opt/files/groupbyts3.txt' into table test > partition(pts='12:11:30'); > load data local inpath '/opt/files/groupbyts4.txt' into table test > partition(pts='21:25:12'); > when I execute “select * from test group by pts;”, it will occur as follows > exception. > at org.apache.hadoop.fs.Path.initialize(Path.java:157) > at org.apache.hadoop.fs.Path.<init>(Path.java:135) > at > org.apache.hadoop.hive.ql.exec.Utilities.getInputSummary(Utilities.java:1667) > at > org.apache.hadoop.hive.ql.exec.MapRedTask.estimateNumberOfReducers(MapRedTask.java:432) > at > org.apache.hadoop.hive.ql.exec.MapRedTask.setNumberOfReducers(MapRedTask.java:400) > at > org.apache.hadoop.hive.ql.exec.MapRedTask.execute(MapRedTask.java:93) > at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:135) > at > org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:57) > at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1329) > at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1121) > at org.apache.hadoop.hive.ql.Driver.run(Driver.java:954) > at > org.apache.hadoop.hive.service.HiveServer$HiveServerHandler.execute(HiveServer.java:198) > at > org.apache.hadoop.hive.service.ThriftHive$Processor$execute.getResult(ThriftHive.java:630) > at > org.apache.hadoop.hive.service.ThriftHive$Processor$execute.getResult(ThriftHive.java:618) > at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:32) > at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:34) > at > org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:176) > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) > at java.lang.Thread.run(Thread.java:662) > Caused by: java.net.URISyntaxException: Relative path in absolute URI: > fake-path-metadata-only-query-default.test{pts=12:11:30%7D > at java.net.URI.checkPath(URI.java:1788) > at java.net.URI.<init>(URI.java:734) > at org.apache.hadoop.fs.Path.initialize(Path.java:154) > ... 19 more > FAILED: Execution Error, return code 1 from > org.apache.hadoop.hive.ql.exec.MapRedTask > When PhysicalOptimizer optimizes GroupByOperator, according to default > parameters "hive.optimize.metadataonly = true", MetadataOnlyOptimizer will be > enabled. The MetadataOnlyOptimizer will change the partition alias desc. The > partition alies > "hdfs://160.165.0.1:9000/user/hive/warehouse/test/pts=12%3A11%3A30" is > changed into " > fake-path-metadata-only-query-default.test{pts=12:11:30}". When construct uri > through new partition alies, it must occur java.net.URISyntaxException. > -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira