private FieldReference getFieldReferenceForFillGroup(
        LongLiteral index, Scope scope, FillPolicy fillMethod) {
      long ordinal = index.getParsedValue();
      if (ordinal < 1 || ordinal > scope.getRelationType().getVisibleFieldCount()) {
        throw new SemanticException(
            String.format(
                "%s FILL FILL_GROUP position %s is not in select list",
                fillMethod.name(), ordinal));
      } else if (!scope
          .getRelationType()
          .getFieldByIndex((int) ordinal - 1)
          .getType()
          .isOrderable()) {
        throw new SemanticException(
            String.format(
                "Type %s is not orderable, and therefore cannot be used in FILL_GROUP: %s",
                scope.getRelationType().getFieldByIndex((int) ordinal - 1).getType(), index));
      } else {
        return new FieldReference(toIntExact(ordinal - 1));
      }
    }
Check if there is Columns function in expression, and verify they are same if there are multi
Column functions.

@param expression input expression
@return if there is Columns function in expression
@throws SemanticException if there are multi Columns functions but different
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/analyzer/StatementAnalyzer.java