docs: public static boolean needsViewHiddenColumn(Table table) {
          // The table must be a view, and it can only have one source table.
          // We do not care if the source table is persistent or streamed.
  
          // If the table is not a materialized view, skip.
          if (table.getMaterializer() == null) {
              return false;
          }
  
          // If the table is a materialized view, then search if there is a COUNT(*) column.
          // We only allow the users to omit the COUNT(*) column if the view is built on
          // one single table. So we do not check again here.
          for (Column c : table.getColumns()) {
              if (ExpressionType.get(c.getAggregatetype()) == ExpressionType.AGGREGATE_COUNT_STAR) {
                  return false;
              }
          }
          return true;
      }