tmpValue.getSecond().putAll(compFilter.getVariables()); continue; inFilter.addChild(new ColumnTupleFilter(entry.getKey())); inFilter.addChild(new ConstantTupleFilter(entry.getValue().getFirst())); inFilter.getVariables().putAll(entry.getValue().getSecond()); ret.addChild(inFilter);
private void bindVariable(TupleFilter filter, DataContext dataContext) { if (filter == null) { return; } for (TupleFilter childFilter : filter.getChildren()) { bindVariable(childFilter, dataContext); } if (filter instanceof CompareTupleFilter && dataContext != null) { CompareTupleFilter compFilter = (CompareTupleFilter) filter; for (Map.Entry<String, Object> entry : compFilter.getVariables().entrySet()) { String variable = entry.getKey(); Object value = dataContext.get(variable); if (value != null) { String str = value.toString(); if (compFilter.getColumn().getType().isDateTimeFamily()) str = String.valueOf(DateFormat.stringToMillis(str)); compFilter.clearPreviousVariableValues(variable); compFilter.bindVariable(variable, str); } } } } // ============================================================================
private void bindVariable(TupleFilter filter) { if (filter == null) { return; } for (TupleFilter childFilter : filter.getChildren()) { bindVariable(childFilter); } if (filter instanceof CompareTupleFilter && optiqContext != null) { CompareTupleFilter compFilter = (CompareTupleFilter) filter; for (Map.Entry<String, String> entry : compFilter.getVariables().entrySet()) { String variable = entry.getKey(); Object value = optiqContext.get(variable); if (value != null) { compFilter.bindVariable(variable, value.toString()); } } } }
private CompareTupleFilter mergeToInClause(TupleFilter filter) { List<? extends TupleFilter> children = filter.getChildren(); TblColRef inColumn = null; List<Object> inValues = new LinkedList<Object>(); Map<String, Object> dynamicVariables = new HashMap<>(); for (TupleFilter child : children) { if (child.getOperator() == TupleFilter.FilterOperatorEnum.EQ) { CompareTupleFilter compFilter = (CompareTupleFilter) child; TblColRef column = compFilter.getColumn(); if (inColumn == null) { inColumn = column; } if (column == null || !column.equals(inColumn)) { return null; } inValues.addAll(compFilter.getValues()); dynamicVariables.putAll(compFilter.getVariables()); } else { return null; } } children.clear(); CompareTupleFilter inFilter = new CompareTupleFilter(TupleFilter.FilterOperatorEnum.IN); inFilter.addChild(new ColumnTupleFilter(inColumn)); inFilter.addChild(new ConstantTupleFilter(inValues)); inFilter.getVariables().putAll(dynamicVariables); return inFilter; }
private void bindVariable(TupleFilter filter, DataContext dataContext) { if (filter == null) { return; } for (TupleFilter childFilter : filter.getChildren()) { bindVariable(childFilter, dataContext); } if (filter instanceof CompareTupleFilter && dataContext != null) { CompareTupleFilter compFilter = (CompareTupleFilter) filter; for (Map.Entry<String, Object> entry : compFilter.getVariables().entrySet()) { String variable = entry.getKey(); Object value = dataContext.get(variable); if (value != null) { String str = value.toString(); if (compFilter.getColumn().getType().isDateTimeFamily()) str = String.valueOf(DateFormat.stringToMillis(str)); compFilter.clearPreviousVariableValues(variable); compFilter.bindVariable(variable, str); } } } } // ============================================================================