Github user kevinjmh commented on the issue:
https://github.com/apache/carbondata/pull/2886
@akashrn5 thanks for reply.
1. Let's take a detail case. you can check whether it is right.
In `DictDimensionIndexCodec#createEncoder`, as the setting I said above
`isSort`=false
`isDoInvertedIndex` = true
`isInvertedIndex`=`isSort`&&`isDoInvertedIndex` = false
so, it will go to `indexStorage = new
BlockIndexerStorageForNoInvertedIndexForShort(data, false);`.
In the construction method, we can see that it only assigns the dataPage
value. No RLE.
```
public BlockIndexerStorageForNoInvertedIndexForShort(byte[][] dataPage,
boolean applyRLE) {
this.dataPage = dataPage;
if (applyRLE) {
List<byte[]> actualDataList = new ArrayList<>();
for (int i = 0; i < dataPage.length; i++) {
actualDataList.add(dataPage[i]);
}
rleEncodeOnData(actualDataList);
}
}
```
2. If isInvertedIndex is TRUE, then the isSort check must be TRUE
```
isInvertedIndex = isSort && isDoInvertedIndex;
^ ^ ^
| | |
internalUsed SORT_COLUMNS INVERTED_INDEX
```
---