private Node containsColumnsHelper(Node node) {
      if (node instanceof Columns) {
        return node;
      }

      Node target = null;
      for (Node child : node.getChildren()) {
        Node childResult = containsColumnsHelper(child);

        if (childResult == null) {
          continue;
        }

        // initialize target
        if (target == null) {
          target = childResult;
          continue;
        }

        if (!childResult.equals(target)) {
          throw new SemanticException(
              "Multiple different COLUMNS in the same expression are not supported");
        }
      }
      return target;
    }
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