You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by er...@apache.org on 2022/07/28 02:38:23 UTC
[iotdb] 01/01: Method reference example
This is an automated email from the ASF dual-hosted git repository.
ericpai pushed a commit to branch improve/it-method-ref
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 70687e9586d059b06648cef3ebe24ea2efc4f43d
Author: ericpai <er...@hotmail.com>
AuthorDate: Thu Jul 28 10:38:07 2022 +0800
Method reference example
---
.../iotdb/itbase/runtime/ClusterTestResultSet.java | 34 +++++++++++++++-------
1 file changed, 24 insertions(+), 10 deletions(-)
diff --git a/integration-test/src/main/java/org/apache/iotdb/itbase/runtime/ClusterTestResultSet.java b/integration-test/src/main/java/org/apache/iotdb/itbase/runtime/ClusterTestResultSet.java
index e98ff7e7c1..b6b9b40861 100644
--- a/integration-test/src/main/java/org/apache/iotdb/itbase/runtime/ClusterTestResultSet.java
+++ b/integration-test/src/main/java/org/apache/iotdb/itbase/runtime/ClusterTestResultSet.java
@@ -93,11 +93,7 @@ public class ClusterTestResultSet implements ResultSet {
@Override
public String getString(int columnIndex) throws SQLException {
- RequestDelegate<String> delegate = createLocalRequestDelegate();
- for (ResultSet rs : resultSets) {
- delegate.addRequest(() -> rs.getString(columnIndex));
- }
- return delegate.requestAllAndCompare();
+ return getColumnValue(rs -> rs.getString(columnIndex));
}
@Override
@@ -225,11 +221,7 @@ public class ClusterTestResultSet implements ResultSet {
@Override
public String getString(String columnLabel) throws SQLException {
- RequestDelegate<String> delegate = createLocalRequestDelegate();
- for (ResultSet rs : resultSets) {
- delegate.addRequest(() -> rs.getString(columnLabel));
- }
- return delegate.requestAllAndCompare();
+ return getColumnValue(rs -> rs.getString(columnLabel));
}
@Override
@@ -1175,4 +1167,26 @@ public class ClusterTestResultSet implements ResultSet {
private <T> RequestDelegate<T> createLocalRequestDelegate() {
return new SerialRequestDelegate<>(endpoints);
}
+
+ private <T> T getColumnValue(SQLValueGetter<ResultSet, T> valueGetter) throws SQLException {
+ RequestDelegate<T> delegate = createLocalRequestDelegate();
+ for (ResultSet rs : resultSets) {
+ delegate.addRequest(() -> valueGetter.apply(rs));
+ }
+ List<T> data = delegate.requestAll();
+
+ // TODO: according to whether this is a disoreded dataset, we cache the results or comparing
+ // them
+ // immediately.
+ // for (int i = 0; i < data.size(); i++) {
+ // List<StringBuilder> list = cachedResult.get(i);
+ // list.get(list.size() - 1).append(data.get(i).toString()).append(",");
+ // }
+ return data.get(0);
+ }
+
+ @FunctionalInterface
+ private interface SQLValueGetter<T, R> {
+ R apply(T t) throws SQLException;
+ }
}