public TupleFilter visit(CaseTupleFilter caseTupleFilter) { List<TupleFilter> whenFilters = caseTupleFilter.getWhenFilters(); List<TupleFilter> thenFilters = caseTupleFilter.getThenFilters(); List<TupleFilter> newFilters = Lists.newArrayList(); boolean changed = false; newFilters.add(thenFilters.get(i)); newFilters.add(caseTupleFilter.getElseFilter()); CaseTupleFilter newCaseTupleFilter = new CaseTupleFilter(); newCaseTupleFilter.addChildren(newFilters); return newCaseTupleFilter;
protected CaseTupleFilter buildCaseFilter(List<TblColRef> groups) { CaseTupleFilter caseFilter = new CaseTupleFilter(); TupleFilter when0 = buildAndFilter(groups); caseFilter.addChild(when0); TupleFilter then0 = new ConstantTupleFilter("0"); caseFilter.addChild(then0); TupleFilter when1 = buildEQCompareFilter(groups, 0); caseFilter.addChild(when1); TupleFilter then1 = new ConstantTupleFilter("1"); caseFilter.addChild(then1); TupleFilter when2 = buildEQCompareFilter(groups, 1); caseFilter.addChild(when2); TupleFilter then2 = new ConstantTupleFilter("2"); caseFilter.addChild(then2); TupleFilter when3 = buildOrFilter(groups); caseFilter.addChild(when3); TupleFilter then3 = new ConstantTupleFilter("3"); caseFilter.addChild(then3); TupleFilter else4 = new ConstantTupleFilter("4"); caseFilter.addChild(else4); return caseFilter; }
@Override public TupleFilter acceptOptimizeTransformer(FilterOptimizeTransformer transformer) { List<TupleFilter> newChildren = Lists.newArrayList(); for (TupleFilter child : this.getChildren()) { if (child instanceof IOptimizeableTupleFilter) { newChildren.add(((IOptimizeableTupleFilter) child).acceptOptimizeTransformer(transformer)); } else { newChildren.add(child); } } this.reinit(); this.addChildren(newChildren); return transformer.visit(this); }
private TupleFilter replaceChildren(TupleFilter filter, List<TupleFilter> newChildren) { if (filter instanceof LogicalTupleFilter) { LogicalTupleFilter r = new LogicalTupleFilter(filter.getOperator()); r.addChildren(newChildren); return r; } else if (filter instanceof CaseTupleFilter) { CaseTupleFilter r = new CaseTupleFilter(); r.addChildren(newChildren); return r; } else { throw new IllegalStateException("Cannot replaceChildren on " + filter); } }
break; case CASE: filter = new CaseTupleFilter(); break; case COLUMN:
filter = new CaseTupleFilter(); break; case OTHER:
private TupleFilter replaceChildren(TupleFilter filter, List<TupleFilter> newChildren) { if (filter instanceof LogicalTupleFilter) { LogicalTupleFilter r = new LogicalTupleFilter(filter.getOperator()); r.addChildren(newChildren); return r; } else if (filter instanceof CaseTupleFilter) { CaseTupleFilter r = new CaseTupleFilter(); r.addChildren(newChildren); return r; } else { throw new IllegalStateException("Cannot replaceChildren on " + filter); } }
public TupleFilter visit(CaseTupleFilter caseTupleFilter) { List<TupleFilter> whenFilters = caseTupleFilter.getWhenFilters(); List<TupleFilter> thenFilters = caseTupleFilter.getThenFilters(); List<TupleFilter> newFilters = Lists.newArrayList(); boolean changed = false; newFilters.add(thenFilters.get(i)); newFilters.add(caseTupleFilter.getElseFilter()); CaseTupleFilter newCaseTupleFilter = new CaseTupleFilter(); newCaseTupleFilter.addChildren(newFilters); return newCaseTupleFilter;
break; case CASE: filter = new CaseTupleFilter(); break; case COLUMN:
protected CaseTupleFilter buildCaseFilter(List<TblColRef> groups) { CaseTupleFilter caseFilter = new CaseTupleFilter(); TupleFilter when0 = buildAndFilter(groups); caseFilter.addChild(when0); TupleFilter then0 = new ConstantTupleFilter("0"); caseFilter.addChild(then0); TupleFilter when1 = buildCompareFilter(groups, 0); caseFilter.addChild(when1); TupleFilter then1 = new ConstantTupleFilter("1"); caseFilter.addChild(then1); TupleFilter when2 = buildCompareFilter(groups, 1); caseFilter.addChild(when2); TupleFilter then2 = new ConstantTupleFilter("2"); caseFilter.addChild(then2); TupleFilter when3 = buildOrFilter(groups); caseFilter.addChild(when3); TupleFilter then3 = new ConstantTupleFilter("3"); caseFilter.addChild(then3); TupleFilter else4 = new ConstantTupleFilter("4"); caseFilter.addChild(else4); return caseFilter; }
@Override public TupleFilter acceptOptimizeTransformer(FilterOptimizeTransformer transformer) { List<TupleFilter> newChildren = Lists.newArrayList(); for (TupleFilter child : this.getChildren()) { if (child instanceof IOptimizeableTupleFilter) { newChildren.add(((IOptimizeableTupleFilter) child).acceptOptimizeTransformer(transformer)); } else { newChildren.add(child); } } this.reinit(); this.addChildren(newChildren); return transformer.visit(this); }
break; case CASE: filter = new CaseTupleFilter(); break; case COLUMN:
break; case CASE: filter = new CaseTupleFilter(); break; case COLUMN:
filter = new CaseTupleFilter(); break; case OTHER: