private IntervalJoinRelation buildNodeRelation(List<Node> inputs, List<Node> outputs) {
        List<String> inputIds = inputs.stream().map(Node::getId).collect(Collectors.toList());
        List<String> outputIds = outputs.stream().map(Node::getId).collect(Collectors.toList());
        LinkedHashMap<String, List<FilterFunction>> conditionMap = new LinkedHashMap<>();
        conditionMap.put("2", Arrays.asList(
                new SingleValueFilterFunction(
                        EmptyOperator.getInstance(),
                        new FieldInfo("currency", "1", new StringFormatInfo()),
                        EqualOperator.getInstance(),
                        new FieldInfo("currency", "2", new StringFormatInfo())),
                new BetweenFunction(
                        AndOperator.getInstance(),
                        new FieldInfo("order_time", "1", new TimestampFormatInfo()),
                        new SubtractFunction(new FieldInfo("update_time", "2", new TimestampFormatInfo()),
                                new IntervalFunction(new StringConstantParam("10"), new TimeUnitConstantParam(
                                        TimeUnit.SECOND))),
                        new AddFunction(new FieldInfo("update_time", "2", new TimestampFormatInfo()),
                                new IntervalFunction(new StringConstantParam("5"), new TimeUnitConstantParam(
                                        TimeUnit.SECOND))))));
        return new IntervalJoinRelation(inputIds, outputIds, conditionMap);
    }
build node relation

@param inputs extract node
@param outputs load node
@return node relation
inlong-sort/sort-core/src/test/java/org/apache/inlong/sort/parser/IntervalJoinRelationSqlParseTest.java