Skip to content

Commit 8036db5

Browse files
committed
simple fix of oracle stream API for RAW column
Signed-off-by: turakamou <[email protected]>
1 parent d8c1d7e commit 8036db5

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

vertx-oracle-client/src/main/java/io/vertx/oracleclient/impl/RowReader.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,9 @@ private static Row transform(List<String> ors, RowDesc desc, oracle.jdbc.OracleR
187187

188188
private static Class<?> getType(String cn) {
189189
try {
190+
if (cn.equals(byte[].class.getName())) {
191+
return byte[].class;
192+
}
190193
return OraclePreparedQueryCommand.class.getClassLoader().loadClass(cn);
191194
} catch (ClassNotFoundException e) {
192195
return null;

vertx-oracle-client/src/test/java/tests/oracleclient/OracleBinaryDataTypesTest.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,28 @@ private <T> void testDecode(TestContext ctx, String columnName, JDBCType jdbcTyp
101101
}));
102102
}
103103

104+
private void testDecodeUsingStream(TestContext ctx, String columnName, JDBCType jdbcType, Buffer expected) {
105+
pool.getConnection(ctx.asyncAssertSuccess(conn -> {
106+
conn.prepare("SELECT " + columnName + " FROM binary_data_types WHERE id = 1")
107+
.onComplete(ctx.asyncAssertSuccess(preparedStatement -> {
108+
preparedStatement.cursor().read(10).onComplete(ctx.asyncAssertSuccess(result -> {
109+
ctx.assertEquals(1, result.size());
110+
Row row = result.iterator().next();
111+
ctx.assertEquals(expected, row.get(Buffer.class, 0));
112+
ctx.assertEquals(expected, row.get(Buffer.class, columnName));
113+
ColumnDescriptor columnDescriptor = result.columnDescriptors().get(0);
114+
ctx.assertEquals(jdbcType, columnDescriptor.jdbcType());
115+
ctx.assertNotNull(columnDescriptor);
116+
}));
117+
}));
118+
}));
119+
}
120+
121+
@Test
122+
public void testDecodeRawUsingStream(TestContext ctx) {
123+
testDecodeUsingStream(ctx, "test_raw", JDBCType.VARBINARY, Buffer.buffer("See you space cowboy..."));
124+
}
125+
104126
@Test
105127
public void testEncodeNull(TestContext ctx) {
106128
pool

0 commit comments

Comments
 (0)