This is an automated email from the ASF dual-hosted git repository.

terrymanu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new c0c01668ff2 Add SQLXML support on JDBCStreamQueryResult (#38879)
c0c01668ff2 is described below

commit c0c01668ff2f6921a504bfa86542a30ef0a8753a
Author: Liang Zhang <[email protected]>
AuthorDate: Sat Jun 20 20:53:00 2026 +0800

    Add SQLXML support on JDBCStreamQueryResult (#38879)
    
    * Add SQLXML support on JDBCStreamQueryResult
    
    * Add SQLXML support on JDBCStreamQueryResult
---
 .../jdbc/type/stream/JDBCStreamQueryResult.java    |  4 +++
 .../type/stream/JDBCStreamQueryResultTest.java     | 36 ++++++++++++++++++++++
 2 files changed, 40 insertions(+)

diff --git 
a/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/execute/result/query/impl/driver/jdbc/type/stream/JDBCStreamQueryResult.java
 
b/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/execute/result/query/impl/driver/jdbc/type/stream/JDBCStreamQueryResult.java
index b4b4306849f..e532e33563d 100644
--- 
a/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/execute/result/query/impl/driver/jdbc/type/stream/JDBCStreamQueryResult.java
+++ 
b/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/execute/result/query/impl/driver/jdbc/type/stream/JDBCStreamQueryResult.java
@@ -32,6 +32,7 @@ import java.sql.Clob;
 import java.sql.Date;
 import java.sql.ResultSet;
 import java.sql.SQLException;
+import java.sql.SQLXML;
 import java.sql.Time;
 import java.sql.Timestamp;
 import java.time.LocalTime;
@@ -114,6 +115,9 @@ public final class JDBCStreamQueryResult extends 
AbstractStreamQueryResult {
         if (Clob.class == type) {
             return resultSet.getClob(columnIndex);
         }
+        if (SQLXML.class == type) {
+            return resultSet.getSQLXML(columnIndex);
+        }
         if (Array.class == type) {
             return resultSet.getArray(columnIndex);
         }
diff --git 
a/infra/executor/src/test/java/org/apache/shardingsphere/infra/executor/sql/execute/result/query/impl/driver/jdbc/type/stream/JDBCStreamQueryResultTest.java
 
b/infra/executor/src/test/java/org/apache/shardingsphere/infra/executor/sql/execute/result/query/impl/driver/jdbc/type/stream/JDBCStreamQueryResultTest.java
index 8a52c45492e..5e4f13bfd99 100644
--- 
a/infra/executor/src/test/java/org/apache/shardingsphere/infra/executor/sql/execute/result/query/impl/driver/jdbc/type/stream/JDBCStreamQueryResultTest.java
+++ 
b/infra/executor/src/test/java/org/apache/shardingsphere/infra/executor/sql/execute/result/query/impl/driver/jdbc/type/stream/JDBCStreamQueryResultTest.java
@@ -26,9 +26,11 @@ import java.sql.Clob;
 import java.sql.Date;
 import java.sql.ResultSet;
 import java.sql.SQLException;
+import java.sql.SQLXML;
 import java.sql.Time;
 import java.sql.Timestamp;
 import java.time.Instant;
+import java.time.LocalTime;
 import java.time.ZoneId;
 import java.time.ZonedDateTime;
 import java.util.Calendar;
@@ -137,6 +139,14 @@ class JDBCStreamQueryResultTest {
         assertThat(new JDBCStreamQueryResult(resultSet).getValue(1, 
Time.class), is(new Time(0L)));
     }
     
+    @Test
+    void assertGetValueByLocalTime() throws SQLException {
+        ResultSet resultSet = mock(ResultSet.class);
+        LocalTime value = LocalTime.of(1, 2, 3);
+        when(resultSet.getObject(1, LocalTime.class)).thenReturn(value);
+        assertThat(new JDBCStreamQueryResult(resultSet).getValue(1, 
LocalTime.class), is(value));
+    }
+    
     @Test
     void assertGetValueByBlob() throws SQLException {
         ResultSet resultSet = mock(ResultSet.class);
@@ -153,6 +163,14 @@ class JDBCStreamQueryResultTest {
         assertThat(new JDBCStreamQueryResult(resultSet).getValue(1, 
Clob.class), is(value));
     }
     
+    @Test
+    void assertGetValueBySQLXML() throws SQLException {
+        ResultSet resultSet = mock(ResultSet.class);
+        SQLXML value = mock(SQLXML.class);
+        when(resultSet.getSQLXML(1)).thenReturn(value);
+        assertThat(new JDBCStreamQueryResult(resultSet).getValue(1, 
SQLXML.class), is(value));
+    }
+    
     @Test
     void assertGetValueByArray() throws SQLException {
         ResultSet resultSet = mock(ResultSet.class);
@@ -175,6 +193,13 @@ class JDBCStreamQueryResultTest {
         assertThat(new JDBCStreamQueryResult(resultSet).getValue(1, 
ZonedDateTime.class), is(ZonedDateTime.ofInstant(Instant.ofEpochSecond(1), 
ZoneId.systemDefault())));
     }
     
+    @Test
+    void assertGetValueByObject() throws SQLException {
+        ResultSet resultSet = mock(ResultSet.class);
+        when(resultSet.getObject(1)).thenReturn("value");
+        assertThat(new JDBCStreamQueryResult(resultSet).getValue(1, 
Object.class), is("value"));
+    }
+    
     @Test
     void assertGetCalendarValueWithDate() throws SQLException {
         ResultSet result = getResultSet();
@@ -276,6 +301,17 @@ class JDBCStreamQueryResultTest {
         assertTrue(actual.wasNull());
     }
     
+    @Test
+    void assertGetJDBCResultSetWhenContained() throws SQLException {
+        ResultSet resultSet = getResultSet();
+        assertThat(new JDBCStreamQueryResult(resultSet, 
true).getJDBCResultSet().orElseThrow(IllegalStateException::new), 
is(resultSet));
+    }
+    
+    @Test
+    void assertGetJDBCResultSetWhenNotContained() throws SQLException {
+        assertFalse(new 
JDBCStreamQueryResult(getResultSet()).getJDBCResultSet().isPresent());
+    }
+    
     @Test
     void assertClose() throws SQLException {
         ResultSet resultSet = getResultSet();

Reply via email to