[
https://issues.apache.org/jira/browse/DRILL-6262?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16405661#comment-16405661
]
ASF GitHub Bot commented on DRILL-6262:
---------------------------------------
Github user sohami commented on a diff in the pull request:
https://github.com/apache/drill/pull/1175#discussion_r175629518
--- Diff:
exec/java-exec/src/main/java/org/apache/drill/exec/record/RecordBatchSizer.java
---
@@ -321,10 +321,8 @@ public ColumnSize(ValueVector v, String prefix) {
// Calculate pure data size.
if (isVariableWidth) {
- UInt4Vector offsetVector = ((RepeatedValueVector)
v).getOffsetVector();
- int innerValueCount =
offsetVector.getAccessor().get(valueCount);
VariableWidthVector dataVector = ((VariableWidthVector)
((RepeatedValueVector) v).getDataVector());
- totalDataSize =
dataVector.getOffsetVector().getAccessor().get(innerValueCount);
+ totalDataSize = dataVector.getCurrentSizeInBytes();
--- End diff --
@paul-rogers - I don't think `totalDataSize` includes both offset vector
side and bytes size. It was meant to only include **pure data size only** for
all entries in that column and that's what comment also suggests.
Instead `totalNetSize` includes the size for data and offset vector which
is used for computing the rowWidth.
> IndexOutOfBoundException in RecordBatchSize for empty variableWidthVector
> -------------------------------------------------------------------------
>
> Key: DRILL-6262
> URL: https://issues.apache.org/jira/browse/DRILL-6262
> Project: Apache Drill
> Issue Type: Bug
> Components: Execution - Flow
> Reporter: Sorabh Hamirwasia
> Assignee: Sorabh Hamirwasia
> Priority: Major
> Labels: ready-to-commit
> Fix For: 1.14.0
>
>
> ColumnSize inside RecordBatchSizer while computing the totalDataSize for
> VariableWidthVector throws IndexOutOfBoundException when the underlying
> vector is empty without any allocated memory.
> This happens because the way totalDataSize is computed is using the
> offsetVector value at an index n where n is total number of records in the
> vector. When vector is empty then n=0 and offsetVector drillbuf is empty as
> well. So while retrieving value at index 0 from offsetVector exception is
> thrown.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)