docs: public int getMaxResultRowSize() {
      if (cachedMaxResultRowSize != null) {
        return cachedMaxResultRowSize;
      }
      if (!this.statementDescribed) {
        throw new IllegalStateException(
            "Cannot estimate result row size on a statement that is not described");
      }
      int maxResultRowSize = 0;
      if (fields != null) {
        for (Field f : fields) {
          final int fieldLength = f.getLength();
          if (fieldLength < 1 || fieldLength >= 65535) {
            /*
             * Field length unknown or large; we can't make any safe estimates about the result size,
             * so we have to fall back to sending queries individually.
             */
            maxResultRowSize = -1;
            break;
          }
          maxResultRowSize += fieldLength;
        }
      }
      cachedMaxResultRowSize = maxResultRowSize;
      return maxResultRowSize;
    }