Github user xuchuanyin commented on a diff in the pull request: https://github.com/apache/carbondata/pull/2252#discussion_r190222169 --- Diff: core/src/main/java/org/apache/carbondata/core/scan/result/BlockletScannedResult.java --- @@ -369,6 +379,9 @@ public void fillDataChunks() { long startTime = System.currentTimeMillis(); for (int i = 0; i < dimensionColumnPages.length; i++) { if (dimensionColumnPages[i][pageCounter] == null && dimRawColumnChunks[i] != null) { + // the long string columns is at the end --- End diff -- @kumarvishal09 During query, we can get the dimensions that this query requires. Also we can know how many longStringColumns this query requires. While writing dimension columns, we write the normal-shortStringColumns first and longStringColumns at last. So during query, suppose we use `n` dimensions containing `m` longStringColumns. Then, the first `n-m` columns will be normal-shortStringColumns and the last `m` columns will be longStringColumns. This line of code can be found below.
---