@Override
  protected @Nullable SchemaFilter visitInPredicate(final InPredicate node, final Context context) {
    final Expression valueList = node.getValueList();
    checkArgument(valueList instanceof InListExpression);
    final List<Expression> values = ((InListExpression) valueList).getValues();
    for (final Expression value : values) {
      if (!(value instanceof Literal)) {
        return null;
      }
    }

    return wrapIdOrAttributeFilter(
        new InFilter(
            values.stream()
                .map(value -> ((StringLiteral) value).getValue())
                .collect(Collectors.toSet())),
        ((SymbolReference) node.getValue()).getName(),
        context);
  }
The {@link ConvertSchemaPredicateToFilterVisitor} will convert a predicate to {@link
SchemaFilter}. For the predicates which can not be converted, this will return {@code null}.
However, for IdDeterminedPredicate, this visitor shall never return {@code null}.
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/predicate/schema/ConvertSchemaPredicateToFilterVisitor.java