This is an automated email from the ASF dual-hosted git repository.
kxiao pushed a commit to branch branch-2.0
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.0 by this push:
new 117c06f623 [improvement](jdbc catalog) Optimize Loop Performance by
Caching `isNebula` Method Result (#24260)
117c06f623 is described below
commit 117c06f623e4fa6a23277fb36c25daec3cc4340a
Author: zy-kkk <[email protected]>
AuthorDate: Wed Sep 13 21:40:28 2023 +0800
[improvement](jdbc catalog) Optimize Loop Performance by Caching `isNebula`
Method Result (#24260)
---
.../java/org/apache/doris/jdbc/JdbcExecutor.java | 30 ++++++++++++++--------
1 file changed, 20 insertions(+), 10 deletions(-)
diff --git
a/fe/be-java-extensions/jdbc-scanner/src/main/java/org/apache/doris/jdbc/JdbcExecutor.java
b/fe/be-java-extensions/jdbc-scanner/src/main/java/org/apache/doris/jdbc/JdbcExecutor.java
index 4541de0f4c..74e65c73ab 100644
---
a/fe/be-java-extensions/jdbc-scanner/src/main/java/org/apache/doris/jdbc/JdbcExecutor.java
+++
b/fe/be-java-extensions/jdbc-scanner/src/main/java/org/apache/doris/jdbc/JdbcExecutor.java
@@ -148,11 +148,15 @@ public class JdbcExecutor {
int columnCount = resultSetMetaData.getColumnCount();
resultColumnTypeNames = new ArrayList<>(columnCount);
block = new ArrayList<>(columnCount);
- for (int i = 0; i < columnCount; ++i) {
- if (!isNebula()) {
+ if (isNebula()) {
+ for (int i = 0; i < columnCount; ++i) {
+ block.add((Object[]) Array.newInstance(Object.class,
batchSizeNum));
+ }
+ } else {
+ for (int i = 0; i < columnCount; ++i) {
resultColumnTypeNames.add(resultSetMetaData.getColumnClassName(i + 1));
+ block.add((Object[]) Array.newInstance(Object.class,
batchSizeNum));
}
- block.add((Object[]) Array.newInstance(Object.class,
batchSizeNum));
}
return columnCount;
} catch (SQLException e) {
@@ -367,16 +371,22 @@ public class JdbcExecutor {
try {
int columnCount = resultSetMetaData.getColumnCount();
curBlockRows = 0;
- do {
- for (int i = 0; i < columnCount; ++i) {
- if (isNebula()) {
+
+ if (isNebula()) {
+ do {
+ for (int i = 0; i < columnCount; ++i) {
block.get(i)[curBlockRows] =
UdfUtils.convertObject((ValueWrapper) resultSet.getObject(i + 1));
- } else {
+ }
+ curBlockRows++;
+ } while (curBlockRows < batchSize && resultSet.next());
+ } else {
+ do {
+ for (int i = 0; i < columnCount; ++i) {
block.get(i)[curBlockRows] = resultSet.getObject(i +
1);
}
- }
- curBlockRows++;
- } while (curBlockRows < batchSize && resultSet.next());
+ curBlockRows++;
+ } while (curBlockRows < batchSize && resultSet.next());
+ }
} catch (SQLException e) {
throw new UdfRuntimeException("get next block failed: ", e);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]