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

commit 65fa39616e371dc9f4353cf1f0be1dc072c4cf6e
Author: lsy3993 <[email protected]>
AuthorDate: Tue Jul 25 21:29:46 2023 +0800

    [improvement](jdbc) add new type 'object' of int (#21681)
---
 .../java/org/apache/doris/jdbc/JdbcExecutor.java   | 23 ++++++++++++++++++++++
 1 file changed, 23 insertions(+)

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 122392bdaa..54506679a3 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
@@ -575,6 +575,27 @@ public class JdbcExecutor {
         }
     }
 
+    private void objectPutToByte(Object[] column, boolean isNullable, int 
numRows, long nullMapAddr,
+                                 long columnAddr, int startRowForNullable) {
+        if (isNullable) {
+            for (int i = startRowForNullable; i < numRows; i++) {
+                if (column[i] == null) {
+                    UdfUtils.UNSAFE.putByte(nullMapAddr + i, (byte) 1);
+                } else {
+                    String columnStr = String.valueOf(column[i]);
+                    int columnInt = Integer.parseInt(columnStr);
+                    UdfUtils.UNSAFE.putByte(columnAddr + i, (byte) columnInt);
+                }
+            }
+        } else {
+            for (int i = 0; i < numRows; i++) {
+                String columnStr = String.valueOf(column[i]);
+                int columnInt = Integer.parseInt(columnStr);
+                UdfUtils.UNSAFE.putByte(columnAddr + i, (byte) columnInt);
+            }
+        }
+    }
+
     public void copyBatchTinyIntResult(Object columnObj, boolean isNullable, 
int numRows, long nullMapAddr,
             long columnAddr) {
         Object[] column = (Object[]) columnObj;
@@ -593,6 +614,8 @@ public class JdbcExecutor {
             shortPutToByte(column, isNullable, numRows, nullMapAddr, 
columnAddr, firstNotNullIndex);
         } else if (column[firstNotNullIndex] instanceof Byte) {
             bytePutToByte(column, isNullable, numRows, nullMapAddr, 
columnAddr, firstNotNullIndex);
+        }  else if (column[firstNotNullIndex] instanceof java.lang.Object) {
+            objectPutToByte(column, isNullable, numRows, nullMapAddr, 
columnAddr, firstNotNullIndex);
         }
     }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to