Github user manishgupta88 commented on a diff in the pull request:
https://github.com/apache/carbondata/pull/2654#discussion_r214351650
--- Diff:
core/src/main/java/org/apache/carbondata/core/datastore/TableSpec.java ---
@@ -91,6 +92,30 @@ private void addMeasures(List<CarbonMeasure> measures) {
}
}
+ /**
+ * No dictionary and complex dimensions of the table
+ *
+ * @return
+ */
+ public DimensionSpec[] getNoDictAndComplexDimensions() {
+ List<Integer> noDicOrCompIndexes = new
ArrayList<>(dimensionSpec.length);
+ int noDicCount = 0;
+ for (int i = 0; i < dimensionSpec.length; i++) {
+ if (dimensionSpec[i].getColumnType() == ColumnType.PLAIN_VALUE
+ || dimensionSpec[i].getColumnType() ==
ColumnType.COMPLEX_PRIMITIVE
+ || dimensionSpec[i].getColumnType() == ColumnType.COMPLEX) {
+ noDicOrCompIndexes.add(i);
+ noDicCount++;
+ }
+ }
+
+ DimensionSpec[] dims = new DimensionSpec[noDicCount];
+ for (int i = 0; i < dims.length; i++) {
+ dims[i] = dimensionSpec[noDicOrCompIndexes.get(i)];
+ }
+ return dims;
--- End diff --
Avoid the below for loop in this method
---