Github user jackylk commented on a diff in the pull request:
https://github.com/apache/carbondata/pull/2204#discussion_r183230067
--- Diff:
core/src/main/java/org/apache/carbondata/core/datamap/DataMapChooser.java ---
@@ -93,6 +93,48 @@ public DataMapExprWrapper choose(CarbonTable
carbonTable, FilterResolverIntf res
resolverIntf);
}
+ /**
+ * Return a chosen datamap based on input filter. See {@link
DataMapChooser}
+ */
+ public DataMapExprWrapper chooseFG(CarbonTable carbonTable,
FilterResolverIntf resolverIntf)
+ throws IOException {
+ if (resolverIntf != null) {
+ Expression expression = resolverIntf.getFilterExpression();
+ // First check for FG datamaps if any exist
+ List<TableDataMap> allDataMapFG =
+ DataMapStoreManager.getInstance().getAllDataMap(carbonTable,
DataMapLevel.FG);
+ ExpressionTuple tuple = selectDataMap(expression, allDataMapFG,
resolverIntf);
+ if (tuple.dataMapExprWrapper != null) {
+ return tuple.dataMapExprWrapper;
+ }
+ }
+ // Return the default datamap if no other datamap exists.
+ return null;
+ }
+
+ /**
+ * Return a chosen datamap based on input filter. See {@link
DataMapChooser}
+ */
+ public DataMapExprWrapper chooseCG(CarbonTable carbonTable,
FilterResolverIntf resolverIntf)
--- End diff --
rename to `chooseCGDataMap`
---