private TemporalJoinRelation buildNodeRelation(List<Node> inputs, List<Node> outputs, boolean left) {
        List<String> inputIds = inputs.stream().map(Node::getId).collect(Collectors.toList());
        List<String> outputIds = outputs.stream().map(Node::getId).collect(Collectors.toList());
        Map<String, List<FilterFunction>> conditionMap = new TreeMap<>();
        conditionMap.put("2", Collections.singletonList(new SingleValueFilterFunction(EmptyOperator.getInstance(),
                new FieldInfo("id", "1", new LongFormatInfo()),
                EqualOperator.getInstance(), new FieldInfo("k", "2", new StringFormatInfo()))));
        conditionMap.put("3", Collections.singletonList(new SingleValueFilterFunction(EmptyOperator.getInstance(),
                new FieldInfo("id", "1", new StringFormatInfo()),
                EqualOperator.getInstance(), new FieldInfo("k", "3", new StringFormatInfo()))));
        conditionMap.put("4", Collections.singletonList(new SingleValueFilterFunction(EmptyOperator.getInstance(),
                new FieldInfo("id", "1", new LongFormatInfo()),
                EqualOperator.getInstance(), new FieldInfo("k", "4", new StringFormatInfo()))));
        conditionMap.put("5", Collections.singletonList(new SingleValueFilterFunction(EmptyOperator.getInstance(),
                new FieldInfo("id", "1", new LongFormatInfo()),
                EqualOperator.getInstance(), new FieldInfo("k", "5", new StringFormatInfo()))));
        if (left) {
            return new LeftOuterTemporalJoinRelation(inputIds, outputIds, conditionMap,
                    new FieldInfo("proc_time"));
        }
        return new InnerTemporalJoinRelation(inputIds, outputIds, conditionMap, new FieldInfo("proc_time"));
    }
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/RedisTemporalJoinRelationSqlParseTest.java