From 319dde19753dbf8cd47143f4e64e4f6d42acf93b Mon Sep 17 00:00:00 2001 From: sounakr Date: Thu, 29 Jun 2017 01:15:21 +0530 Subject: [PATCH] Rectify Vector Buffer Calculation --- .../collector/impl/DictionaryBasedVectorResultCollector.java | 5 +++-- .../impl/RestructureBasedVectorResultCollector.java | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/org/apache/carbondata/core/scan/collector/impl/DictionaryBasedVectorResultCollector.java b/core/src/main/java/org/apache/carbondata/core/scan/collector/impl/DictionaryBasedVectorResultCollector.java index 73ccb5d1905..c857a47e806 100644 --- a/core/src/main/java/org/apache/carbondata/core/scan/collector/impl/DictionaryBasedVectorResultCollector.java +++ b/core/src/main/java/org/apache/carbondata/core/scan/collector/impl/DictionaryBasedVectorResultCollector.java @@ -139,8 +139,9 @@ protected void prepareDimensionAndMeasureColumnVectors() { } int rowCounter = scannedResult.getRowCounter(); int availableRows = currentPageRowCount - rowCounter; - int requiredRows = - columnarBatch.getBatchSize() - (columnarBatch.getActualSize() + filteredRows); + // getRowCounter holds total number or rows being placed in Vector. Calculate the + // Left over space through getRowCounter only. + int requiredRows = columnarBatch.getBatchSize() - columnarBatch.getRowCounter(); requiredRows = Math.min(requiredRows, availableRows); if (requiredRows < 1) { return; diff --git a/core/src/main/java/org/apache/carbondata/core/scan/collector/impl/RestructureBasedVectorResultCollector.java b/core/src/main/java/org/apache/carbondata/core/scan/collector/impl/RestructureBasedVectorResultCollector.java index 6f45c474ae0..8ae0d96ffe8 100644 --- a/core/src/main/java/org/apache/carbondata/core/scan/collector/impl/RestructureBasedVectorResultCollector.java +++ b/core/src/main/java/org/apache/carbondata/core/scan/collector/impl/RestructureBasedVectorResultCollector.java @@ -103,7 +103,7 @@ private Object getMeasureDefaultValue(CarbonMeasure carbonMeasure) { } int rowCounter = scannedResult.getRowCounter(); int availableRows = currentPageRowCount - rowCounter; - int requiredRows = columnarBatch.getBatchSize() - columnarBatch.getActualSize(); + int requiredRows = columnarBatch.getBatchSize() - columnarBatch.getRowCounter(); requiredRows = Math.min(requiredRows, availableRows); if (requiredRows < 1) { return;