default <C, R> Stream<R> reduceRows(RowReducer<C, R> rowReducer) {
        return scanResultSet((resultSetSupplier, context) -> {
            try (StatementContext ctx = context) {
                ResultSet resultSet = resultSetSupplier.get();
                RowView rowView = new RowViewImpl(resultSet, ctx);

                C container = rowReducer.container();
                while (resultSet.next()) {
                    rowReducer.accumulate(container, rowView);
                }
                return rowReducer.stream(container).onClose(ctx::close);
            } catch (SQLException e) {
                throw new UnableToProduceResultException(e, context);
            }
        });
    }
Reduce the result rows using the given row reducer.

@param rowReducer the row reducer.
@param <C> Mutable result container type
@param <R> Result element type
@return the stream of result elements
@see RowReducer
core/src/main/java/org/jdbi/v3/core/result/ResultBearing.java