Jinfeng Ni created DRILL-301:
--------------------------------
Summary: Join two tables hit IndexOutOfBoundsException
Key: DRILL-301
URL: https://issues.apache.org/jira/browse/DRILL-301
Project: Apache Drill
Issue Type: Bug
Reporter: Jinfeng Ni
The following query, which joins two tables, will hit IndexOutOfBoundsException
[ index: 31981700, length: 4 (expected: range(0, 4194244)) ]. If run a query
which joins two smaller table (nation vs region), the query is successful.
SELECT S.S_ACCTBAL, S.S_NAME
FROM
( SELECT _MAP['S_SUPPKEY'] AS S_SUPPKEY,
_MAP['S_NATIONKEY'] AS S_NATIONKEY,
_MAP['S_ACCTBAL'] AS S_ACCTBAL,
_MAP['S_NAME'] AS S_NAME,
_MAP['S_ADDRESS'] AS S_ADDRESS,
_MAP['S_PHONE'] AS S_PHONE,
_MAP['S_COMMENT'] AS S_COMMENT
FROM "/Users/jni//work/tpc-h-parquet/supplier") S,
(SELECT _MAP['PS_PARTKEY'] AS PS_PARTKEY,
_MAP['PS_SUPPKEY'] AS PS_SUPPKEY
FROM "/Users/jni//work/tpc-h-parquet/partsupp") PS
WHERE S.S_SUPPKEY = PS.PS_SUPPKEY
LIMIT 100;
The throwable stack when the exception is raised:
java.lang.IndexOutOfBoundsException: index: 31981700, length: 4 (expected:
range(0, 4194244))
io.netty.buffer.AbstractByteBuf.checkIndex(AbstractByteBuf.java:1130)
~[netty-buffer-4.0.7.Final.jar:na]
io.netty.buffer.AbstractByteBuf.getInt(AbstractByteBuf.java:378)
~[netty-buffer-4.0.7.Final.jar:na]
org.apache.drill.exec.vector.UInt4Vector$Accessor.get(UInt4Vector.java:188)
~[drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
org.apache.drill.exec.vector.VarBinaryVector$Mutator.setValueCount(VarBinaryVector.java:355)
~[drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
org.apache.drill.exec.physical.impl.svremover.RemovingRecordBatch.doWork(RemovingRecordBatch.java:92)
~[drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
org.apache.drill.exec.record.AbstractSingleRecordBatch.next(AbstractSingleRecordBatch.java:63)
~[drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
org.apache.drill.exec.record.AbstractSingleRecordBatch.next(AbstractSingleRecordBatch.java:42)
~[drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
org.apache.drill.exec.record.AbstractSingleRecordBatch.next(AbstractSingleRecordBatch.java:42)
~[drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
org.apache.drill.exec.physical.impl.limit.LimitRecordBatch.next(LimitRecordBatch.java:89)
~[drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
org.apache.drill.exec.record.AbstractSingleRecordBatch.next(AbstractSingleRecordBatch.java:42)
~[drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
org.apache.drill.exec.physical.impl.ScreenCreator$ScreenRoot.next(ScreenCreator.java:77)
~[drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
org.apache.drill.exec.work.FragmentRunner.run(FragmentRunner.java:79)
~[drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
[na:1.7.0_45]
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
[na:1.7.0_45]
java.lang.Thread.run(Thread.java:744) [na:1.7.0_45]
--
This message was sent by Atlassian JIRA
(v6.1#6144)