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();