Github user ajantha-bhat commented on a diff in the pull request:
https://github.com/apache/carbondata/pull/2607#discussion_r207774205
--- Diff:
integration/presto/src/main/scala/org/apache/carbondata/presto/CarbonDictionaryDecodeReadSupport.scala
---
@@ -84,25 +85,31 @@ class CarbonDictionaryDecodeReadSupport[T] extends
CarbonReadSupport[T] {
* @param dictionaryData
* @return
*/
- private def createSliceArrayBlock(dictionaryData: Dictionary):
SliceArrayBlock = {
+ private def createSliceArrayBlock(dictionaryData: Dictionary): Block = {
val chunks: DictionaryChunksWrapper =
dictionaryData.getDictionaryChunks
- val sliceArray = new Array[Slice](chunks.getSize + 1)
- // Initialize Slice Array with Empty Slice as per Presto's code
- sliceArray(0) = Slices.EMPTY_SLICE
- var count = 1
+ val positionCount = chunks.getSize;
+ val offsetVector : Array[Int] = new Array[Int](positionCount + 2 )
+ val isNullVector: Array[Boolean] = new Array[Boolean](positionCount +
1)
+ isNullVector(0) = true
+ isNullVector(1) = true
--- End diff --
Can you please add a comment about this logic. It is hard to understand.
Why **isNullVector** is not filled inside while() if content is null.
Also why first 3 elements of offset vector is set to 0 ?
---