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 <zhongy...@gmail.com>
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: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to