baseConditionMap = new HashMap<>(); for (IndexDescriptor idx : firstKeyIdxConditionMap.keySet()) { if(IndexPlanUtils.conditionIndexed(context.getOrigMarker(), idx) == IndexPlanUtils.ConditionIndexed.NONE) { continue; if(IndexPlanUtils.conditionIndexed(context.getOrigMarker(), idx) == IndexPlanUtils.ConditionIndexed.NONE) { continue;
/** * * @param expr * @param context * @return if there is filter and expr is only in equality condition of the filter, return true */ private static boolean exprOnlyInEquality(LogicalExpression expr, IndexCallContext context) { // if there is no filter, expr wont be in equality if (context.getFilter() == null) { return false; } final Set<LogicalExpression> onlyInEquality = context.getOrigMarker().getExpressionsOnlyInEquality(); return onlyInEquality.contains(expr); } /**
IndexGroupScan indexScan = index.getIndexGroupScan(); RelDataType indexScanRowType = FunctionalIndexHelper.convertRowTypeForIndexScan( origScan, indexContext.getOrigMarker(), indexScan, functionInfo); DrillDistributionTrait partition = IndexPlanUtils.scanIsPartition(IndexPlanUtils.getGroupScan(origScan))? DrillDistributionTrait.RANDOM_DISTRIBUTED : DrillDistributionTrait.SINGLETON;
baseConditionMap = new HashMap<>(); for (IndexDescriptor idx : firstKeyIdxConditionMap.keySet()) { if(IndexPlanUtils.conditionIndexed(context.getOrigMarker(), idx) == IndexPlanUtils.ConditionIndexed.NONE) { continue; if(IndexPlanUtils.conditionIndexed(context.getOrigMarker(), idx) == IndexPlanUtils.ConditionIndexed.NONE) { continue;
origScan, indexContext.getOrigMarker(), indexGroupScan, functionInfo);