diff --git a/vertx-sql-client/pom.xml b/vertx-sql-client/pom.xml
index 97442e70f..d7133e2f7 100644
--- a/vertx-sql-client/pom.xml
+++ b/vertx-sql-client/pom.xml
@@ -62,58 +62,6 @@
test-jar
test
-
- org.openjdk.jmh
- jmh-core
- ${jmh.version}
- test
-
-
- org.openjdk.jmh
- jmh-generator-annprocess
- ${jmh.version}
- test
-
-
-
- benchmarks
-
-
-
- maven-assembly-plugin
-
-
- assemble-benchmarks
- package
-
- single
-
-
-
-
- org.openjdk.jmh.Main
-
-
-
- src/test/assembly/benchmarks.xml
-
-
-
-
-
-
-
-
-
- org.openjdk.jmh
- jmh-generator-annprocess
- ${jmh.version}
- test
-
-
-
-
-
diff --git a/vertx-sql-client/src/main/java/io/vertx/sqlclient/impl/RowSetImpl.java b/vertx-sql-client/src/main/java/io/vertx/sqlclient/impl/RowSetImpl.java
index a0abb82a7..69e07438e 100644
--- a/vertx-sql-client/src/main/java/io/vertx/sqlclient/impl/RowSetImpl.java
+++ b/vertx-sql-client/src/main/java/io/vertx/sqlclient/impl/RowSetImpl.java
@@ -19,10 +19,11 @@
import io.vertx.sqlclient.Row;
import io.vertx.sqlclient.RowIterator;
import io.vertx.sqlclient.RowSet;
-import io.vertx.sqlclient.impl.accumulator.ArrayListRowAccumulator;
-import io.vertx.sqlclient.impl.accumulator.RowAccumulator;
-import java.util.NoSuchElementException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
import java.util.function.Function;
import java.util.stream.Collector;
@@ -38,9 +39,7 @@ class RowSetImpl extends SqlResultBase> implements RowSet {
static Collector, RowSet> collector(Function mapper) {
return Collector.of(
RowSetImpl::new,
- (set, row) -> {
- set.add(mapper.apply(row));
- },
+ (set, row) -> set.add(mapper.apply(row)),
(set1, set2) -> null, // Shall not be invoked as this is sequential
(set) -> set
);
@@ -52,8 +51,7 @@ static Function, RowSetImpl> factory() {
return rs -> (RowSetImpl) rs;
}
- private R firstRow;
- private RowAccumulator rowAccumulator;
+ private List rowAccumulator = Collections.emptyList();
@Override
public RowSet value() {
@@ -61,56 +59,30 @@ public RowSet value() {
}
private void add(R row) {
- if (rowAccumulator != null) {
- rowAccumulator.accept(row);
- } else if (firstRow != null) {
- rowAccumulator = new ArrayListRowAccumulator<>();
- rowAccumulator.accept(firstRow);
- rowAccumulator.accept(row);
- firstRow = null;
- } else {
- firstRow = row;
+ if (rowAccumulator.isEmpty()) {
+ rowAccumulator = new ArrayList<>();
}
+ rowAccumulator.add(row);
}
@Override
public RowIterator iterator() {
- return rowAccumulator != null ? rowAccumulator.iterator() : SingletonRowIterator.createFor(firstRow);
+ Iterator iter = rowAccumulator.iterator();
+ return new RowIterator() {
+ @Override
+ public boolean hasNext() {
+ return iter.hasNext();
+ }
+
+ @Override
+ public R next() {
+ return iter.next();
+ }
+ };
}
@Override
public RowSetImpl next() {
return (RowSetImpl) super.next();
}
-
- private static final class SingletonRowIterator implements RowIterator {
-
- static final SingletonRowIterator