@Override public TupleFilter visitDynamicParam(RexDynamicParam dynamicParam) { String name = dynamicParam.getName(); TupleFilter filter = new DynamicTupleFilter(name); return filter; } }
if (!this.dynamicVariables.containsKey(dynamicFilter.getVariableName())) { this.dynamicVariables.put(dynamicFilter.getVariableName(), null);
break; case DYNAMIC: filter = new DynamicTupleFilter(null); break; case FUNCTION:
@Override public void addChild(TupleFilter child) { super.addChild(child); if (child instanceof ColumnTupleFilter) { ColumnTupleFilter columnFilter = (ColumnTupleFilter) child; if (this.column != null) { throw new IllegalStateException("Duplicate columns! old is " + column.getName() + " and new is " + columnFilter.getColumn().getName()); } this.column = columnFilter.getColumn(); // if value is before column, we need to reverse the operator. e.g. "1 >= c1" => "c1 <= 1" if (!this.conditionValues.isEmpty() && needSwapOperator()) { this.operator = SWAP_OP_MAP.get(this.operator); } } else if (child instanceof ConstantTupleFilter) { this.conditionValues.addAll(child.getValues()); this.firstCondValue = this.conditionValues.iterator().next(); } else if (child instanceof DynamicTupleFilter) { DynamicTupleFilter dynamicFilter = (DynamicTupleFilter) child; this.dynamicVariables.put(dynamicFilter.getVariableName(), null); } //TODO // else if (child instanceof ExtractTupleFilter) { // } else if (child instanceof CaseTupleFilter) { // } }
protected CompareTupleFilter buildCompareDynamicFilter(List<TblColRef> groups, FilterOperatorEnum operator) { CompareTupleFilter compareFilter = new CompareTupleFilter(operator); compareFilter.addChild(new ColumnTupleFilter(groups.get(0))); compareFilter.addChild(new DynamicTupleFilter("?0")); compareFilter.bindVariable("?0", "abc"); return compareFilter; }
if (!this.dynamicVariables.containsKey(dynamicFilter.getVariableName())) { this.dynamicVariables.put(dynamicFilter.getVariableName(), null);
break; case DYNAMIC: filter = new DynamicTupleFilter(null); break; default:
@Override public void addChild(TupleFilter child) { super.addChild(child); if (child instanceof ColumnTupleFilter) { ColumnTupleFilter columnFilter = (ColumnTupleFilter) child; if (this.column != null) { throw new IllegalStateException("Duplicate columns! old is " + column.getName() + " and new is " + columnFilter.getColumn().getName()); } this.column = columnFilter.getColumn(); // if value is before column, we need to reverse the operator. e.g. "1 >= c1" => "c1 <= 1" if (!this.conditionValues.isEmpty() && needSwapOperator()) { this.operator = SWAP_OP_MAP.get(this.operator); } } else if (child instanceof ConstantTupleFilter) { this.conditionValues.addAll(child.getValues()); if (!this.conditionValues.isEmpty()) { this.firstCondValue = this.conditionValues.iterator().next(); } } else if (child instanceof DynamicTupleFilter) { DynamicTupleFilter dynamicFilter = (DynamicTupleFilter) child; this.dynamicVariables.put(dynamicFilter.getVariableName(), null); } else if (child instanceof FunctionTupleFilter) { this.function = (FunctionTupleFilter)child; } //TODO // else if (child instanceof ExtractTupleFilter) { // } else if (child instanceof CaseTupleFilter) { // } }
@Override public TupleFilter visitDynamicParam(RexDynamicParam dynamicParam) { String name = dynamicParam.getName(); TupleFilter filter = new DynamicTupleFilter(name); return filter; } }
break; case DYNAMIC: filter = new DynamicTupleFilter(null); break; case FUNCTION:
break; case DYNAMIC: filter = new DynamicTupleFilter(null); break; default: