[
https://issues.apache.org/jira/browse/TAJO-427?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13922135#comment-13922135
]
Hudson commented on TAJO-427:
-----------------------------
SUCCESS: Integrated in Tajo-master-build #105 (See
[https://builds.apache.org/job/Tajo-master-build/105/])
TAJO-427: Empty table makes IndexOutOfBoundsException at LEFT OUTER JOIN
clause. (jaehwa) (jhjung:
https://git-wip-us.apache.org/repos/asf/?p=incubator-tajo.git&a=commit&h=4089c9d59d1fd150430746caa4a4031ba3dd8279)
*
tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testLeftOuterJoinWithEmptyTable3.result
*
tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testCrossJoinWithEmptyTable1.result
*
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/logical/ShuffleFileWriteNode.java
*
tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testLeftOuterJoinWithEmptyTable2.sql
*
tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testLeftOuterJoinWithEmptyTable1.sql
*
tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testRightOuterJoinWithEmptyTable1.sql
*
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/Partitioner.java
*
tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testFullOuterJoinWithEmptyTable1.sql
*
tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testLeftOuterJoinWithEmptyTable4.result
*
tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testLeftOuterJoin1.result
*
tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testCrossJoinWithEmptyTable1.sql
*
tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testLeftOuterJoinWithEmptyTable3.sql
*
tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testFullOuterJoinWithEmptyTable1.result
*
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/physical/HashPartitioner.java
*
tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testLeftOuterJoinWithEmptyTable4.sql
*
tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testRightOuterJoinWithEmptyTable1.result
* CHANGES.txt
*
tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testLeftOuterJoin1.sql
*
tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testLeftOuterJoinWithEmptyTable1.result
*
tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/utils/TupleUtil.java
*
tajo-core/tajo-core-backend/src/test/resources/results/TestJoinQuery/testLeftOuterJoinWithEmptyTable2.result
*
tajo-core/tajo-core-backend/src/test/java/org/apache/tajo/engine/query/TestJoinQuery.java
> Empty table makes IndexOutOfBoundsException at LEFT OUTER JOIN clause.
> ----------------------------------------------------------------------
>
> Key: TAJO-427
> URL: https://issues.apache.org/jira/browse/TAJO-427
> Project: Tajo
> Issue Type: Bug
> Components: planner/optimizer, query master
> Affects Versions: 0.8-incubating, 1.0-incubating
> Reporter: Jaehwa Jung
> Assignee: Jaehwa Jung
> Fix For: 0.8-incubating, 1.0-incubating
>
> Attachments: TAJO-427.patch, TAJO-427_2.patch
>
>
> If empty table use at LEFT OUTER JOIN clause, it makes
> IndexOutOfBoundsException as follows:
> {code:xml}
> tajo> select * from table1;
> Progress: 100%, response time: 0.146 sec
> final state: QUERY_SUCCEEDED, response time: 0.146 sec
> result:
> hdfs://localhost:9010/tmp/tajo-blrunner/staging/q_1387348492386_0013/RESULT,
> 5 rows (60 B)
> id, name, score, type
> -------------------------------
> 1, ooo, 1.1, a
> 2, ppp, 2.3, b
> 3, qqq, 3.4, c
> 4, rrr, 4.5, d
> 5, xxx, 5.6, e
> tajo> select * from table3;
> Progress: 100%, response time: 0.053 sec
> final state: QUERY_SUCCEEDED, response time: 0.053 sec
> result:
> hdfs://localhost:9010/tmp/tajo-blrunner/staging/q_1387348492386_0014/RESULT,
> 0 rows (0 B)
> id, name, score, type
> -------------------------------
> tajo> select a.id, a.name, a.score, case when b.name is null then 'zzz' else
> b.name end as name2 from table1 a left outer join table3 b on a.id = b.id;
> Internal error!
> {code}
> Tajo master makes log as follows:
> {code:xml}
> 2013-12-18 15:39:25,678 INFO service.AbstractService
> (AbstractService.java:start(94)) -
> Service:org.apache.tajo.worker.AbstractResourceAllocator is started.
> 2013-12-18 15:39:25,678 INFO service.AbstractService
> (AbstractService.java:start(94)) -
> Service:org.apache.tajo.master.TajoAsyncDispatcher is started.
> 2013-12-18 15:39:25,679 INFO master.TajoAsyncDispatcher
> (TajoAsyncDispatcher.java:start(101)) - AsyncDispatcher
> started:q_1387348492386_0015
> 2013-12-18 15:39:25,679 INFO service.AbstractService
> (AbstractService.java:start(94)) -
> Service:org.apache.tajo.master.querymaster.QueryMasterTask is started.
> 2013-12-18 15:39:25,679 INFO querymaster.Query (Query.java:handle(452)) -
> Processing q_1387348492386_0015 of type START
> 2013-12-18 15:39:25,682 INFO storage.AbstractStorageManager
> (AbstractStorageManager.java:listStatus(384)) - Total input paths to process
> : 0
> 2013-12-18 15:39:25,682 INFO storage.AbstractStorageManager
> (AbstractStorageManager.java:getSplits(612)) - Total # of splits: 0
> 2013-12-18 15:39:25,682 ERROR querymaster.SubQuery
> (SubQuery.java:transition(529)) - SubQuery (eb_1387348492386_0015_000003)
> ERROR:
> java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
> at java.util.ArrayList.RangeCheck(ArrayList.java:547)
> at java.util.ArrayList.get(ArrayList.java:322)
> at
> org.apache.tajo.master.querymaster.Repartitioner.createJoinTasks(Repartitioner.java:96)
> at
> org.apache.tajo.master.querymaster.SubQuery$InitAndRequestContainer.createTasks(SubQuery.java:663)
> at
> org.apache.tajo.master.querymaster.SubQuery$InitAndRequestContainer.transition(SubQuery.java:517)
> at
> org.apache.tajo.master.querymaster.SubQuery$InitAndRequestContainer.transition(SubQuery.java:499)
> at
> org.apache.hadoop.yarn.state.StateMachineFactory$MultipleInternalArc.doTransition(StateMachineFactory.java:382)
> at
> org.apache.hadoop.yarn.state.StateMachineFactory.doTransition(StateMachineFactory.java:299)
> at
> org.apache.hadoop.yarn.state.StateMachineFactory.access$300(StateMachineFactory.java:43)
> at
> org.apache.hadoop.yarn.state.StateMachineFactory$InternalStateMachine.doTransition(StateMachineFactory.java:445)
> at org.apache.tajo.master.querymaster.SubQuery.handle(SubQuery.java:476)
> at
> org.apache.tajo.master.querymaster.Query$StartTransition.transition(Query.java:288)
> at
> org.apache.tajo.master.querymaster.Query$StartTransition.transition(Query.java:277)
> at
> org.apache.hadoop.yarn.state.StateMachineFactory$SingleInternalArc.doTransition(StateMachineFactory.java:359)
> at
> org.apache.hadoop.yarn.state.StateMachineFactory.doTransition(StateMachineFactory.java:299)
> at
> org.apache.hadoop.yarn.state.StateMachineFactory.access$300(StateMachineFactory.java:43)
> at
> org.apache.hadoop.yarn.state.StateMachineFactory$InternalStateMachine.doTransition(StateMachineFactory.java:445)
> at org.apache.tajo.master.querymaster.Query.handle(Query.java:457)
> at org.apache.tajo.master.querymaster.Query.handle(Query.java:54)
> at
> org.apache.tajo.master.TajoAsyncDispatcher.dispatch(TajoAsyncDispatcher.java:137)
> at
> org.apache.tajo.master.TajoAsyncDispatcher$1.run(TajoAsyncDispatcher.java:79)
> at java.lang.Thread.run(Thread.java:680)
> {code}
--
This message was sent by Atlassian JIRA
(v6.2#6252)