Skip to content

Commit 27d2a32

Browse files
Merge pull request #68 from oracle/1-0-0-spi
1.0.0 SPI Update
2 parents 4acbe76 + 0e842d2 commit 27d2a32

File tree

9 files changed

+259
-151
lines changed

9 files changed

+259
-151
lines changed

pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
<version>0.4.0</version>
3030
<name>oracle-r2dbc</name>
3131
<description>
32-
Oracle R2DBC Driver implementing version 0.9.0 of the R2DBC SPI for Oracle Database.
32+
Oracle R2DBC Driver implementing version 1.0.0 of the R2DBC SPI for Oracle Database.
3333
</description>
3434
<url>
3535
https://github.com/oracle/oracle-r2dbc
@@ -65,8 +65,8 @@
6565

6666
<properties>
6767
<java.version>11</java.version>
68-
<ojdbc.version>21.3.0.0</ojdbc.version>
69-
<r2dbc.version>0.9.0.RELEASE</r2dbc.version>
68+
<ojdbc.version>21.5.0.0</ojdbc.version>
69+
<r2dbc.version>1.0.0.RELEASE</r2dbc.version>
7070
<reactor.version>3.3.0.RELEASE</reactor.version>
7171
<reactive-streams.version>1.0.3</reactive-streams.version>
7272
<junit.version>5.7.0</junit.version>

src/main/java/oracle/r2dbc/impl/OracleResultImpl.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -196,9 +196,8 @@ public <T> Publisher<T> flatMap(
196196
* </p>
197197
*/
198198
@Override
199-
public Publisher<Integer> getRowsUpdated() {
200-
return publishSegments(UpdateCount.class,
201-
updateCount -> Math.toIntExact(updateCount.value()));
199+
public Publisher<Long> getRowsUpdated() {
200+
return publishSegments(UpdateCount.class, UpdateCount::value);
202201
}
203202

204203
/**

src/main/java/oracle/r2dbc/impl/OracleStatementImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1457,7 +1457,7 @@ private JdbcBatch(
14571457
*/
14581458
@Override
14591459
protected Publisher<Void> bind() {
1460-
@SuppressWarnings("unchecked")
1460+
@SuppressWarnings({"unchecked","rawtypes"})
14611461
Publisher<Void>[] bindPublishers = new Publisher[batchSize];
14621462
for (int i = 0; i < batchSize; i++) {
14631463
bindPublishers[i] = Flux.concat(

src/main/java/oracle/r2dbc/impl/ReadablesMetadata.java

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -237,22 +237,6 @@ public List<? extends ColumnMetadata> getColumnMetadatas() {
237237
public boolean contains(String columnName) {
238238
return getColumnIndex(columnName) != -1;
239239
}
240-
241-
/**
242-
* {@inheritDoc}
243-
* <p>
244-
* Implements the R2DBC SPI method by returning a view of the column metadata
245-
* objects, with each list entry mapped to {@link ColumnMetadata#getName()}.
246-
* As specified by the SPI method documentation, the returned collection is
247-
* unmodifiable, imposes the same column ordering as the query result, and
248-
* supports case insensitive look ups.
249-
* </p>
250-
*/
251-
@Override
252-
public Collection<String> getColumnNames() {
253-
throw new UnsupportedOperationException(
254-
"This method is deprecated for removal");
255-
}
256240
}
257241

258242
static final class OutParametersMetadataImpl

src/test/java/oracle/r2dbc/impl/OracleConnectionImplTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -952,7 +952,7 @@ public void testSetAutoCommit() {
952952
"Unexpected value returned by isAutoCommit() before subscribing to"
953953
+ " setAutoCommit(true) publisher");
954954
awaitMany(
955-
List.of(1, 1),
955+
List.of(1L, 1L),
956956
Flux.from(sessionA.createBatch()
957957
.add("INSERT INTO testSetAutoCommit VALUES ('C')")
958958
.add("INSERT INTO testSetAutoCommit VALUES ('C')")

src/test/java/oracle/r2dbc/impl/OracleResultImplTest.java

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,9 @@ public void testGetRowsUpdated() {
8989
.toIterable()
9090
.iterator();
9191
Result insertResult0 = insertResults.next();
92-
Publisher<Integer> insertCountPublisher0 =
92+
Publisher<Long> insertCountPublisher0 =
9393
insertResult0.getRowsUpdated();
94-
awaitOne(1, insertCountPublisher0);
94+
awaitOne(1L, insertCountPublisher0);
9595

9696
// Expect IllegalStateException from multiple Result consumptions.
9797
assertThrows(IllegalStateException.class,
@@ -100,12 +100,12 @@ public void testGetRowsUpdated() {
100100
() -> insertResult0.map((row, metadata) -> "unexpected"));
101101

102102
// Expect update count publisher to support multiple subscribers
103-
awaitOne(1, insertCountPublisher0);
103+
awaitOne(1L, insertCountPublisher0);
104104

105105
Result insertResult1 = insertResults.next();
106-
Publisher<Integer> insertCountPublisher1 =
106+
Publisher<Long> insertCountPublisher1 =
107107
insertResult1.getRowsUpdated();
108-
awaitOne(1, insertCountPublisher1);
108+
awaitOne(1L, insertCountPublisher1);
109109

110110
// Expect IllegalStateException from multiple Result consumptions.
111111
assertThrows(IllegalStateException.class,
@@ -114,53 +114,53 @@ public void testGetRowsUpdated() {
114114
() -> insertResult1.map((row, metadata) -> "unexpected"));
115115

116116
// Expect update count publisher to support multiple subscribers
117-
awaitOne(1, insertCountPublisher1);
117+
awaitOne(1L, insertCountPublisher1);
118118

119119
// Expect an update count of zero from UPDATE of zero rows
120120
consumeOne(connection.createStatement(
121121
"UPDATE testGetRowsUpdated SET y = 99 WHERE x = 99")
122122
.execute(),
123123
noUpdateResult -> {
124-
Publisher<Integer> noUpdateCountPublisher =
124+
Publisher<Long> noUpdateCountPublisher =
125125
noUpdateResult.getRowsUpdated();
126-
awaitOne(0, noUpdateCountPublisher);
126+
awaitOne(0L, noUpdateCountPublisher);
127127

128128
// Expect IllegalStateException from multiple Result consumptions.
129129
assertThrows(IllegalStateException.class,
130130
() -> noUpdateResult.map((row, metadata) -> "unexpected"));
131131
assertThrows(IllegalStateException.class, noUpdateResult::getRowsUpdated);
132132

133133
// Expect update count publisher to support multiple subscribers
134-
awaitOne(0, noUpdateCountPublisher);
134+
awaitOne(0L, noUpdateCountPublisher);
135135
});
136136

137137
// Expect update count of 2 from UPDATE of 2 rows
138138
consumeOne(connection.createStatement(
139139
"UPDATE testGetRowsUpdated SET y = 2 WHERE x = 0")
140140
.execute(),
141141
updateResult -> {
142-
Publisher<Integer> updateCountPublisher = updateResult.getRowsUpdated();
143-
awaitOne(2, updateCountPublisher);
142+
Publisher<Long> updateCountPublisher = updateResult.getRowsUpdated();
143+
awaitOne(2L, updateCountPublisher);
144144

145145
// Expect IllegalStateException from multiple Result consumptions.
146146
assertThrows(IllegalStateException.class,
147147
() -> updateResult.map((row, metadata) -> "unexpected"));
148148
assertThrows(IllegalStateException.class, updateResult::getRowsUpdated);
149149

150150
// Expect update count publisher to support multiple subscribers
151-
awaitOne(2, updateCountPublisher);
151+
awaitOne(2L, updateCountPublisher);
152152
});
153153

154154
// Expect no update count from SELECT
155155
awaitNone(Mono.from(connection.createStatement(
156156
"SELECT x,y FROM testGetRowsUpdated")
157157
.execute())
158158
.flatMapMany(selectResult -> {
159-
Publisher<Integer> selectCountPublisher =
159+
Publisher<Long> selectCountPublisher =
160160
selectResult.getRowsUpdated();
161161

162162
// Expect update count publisher to support multiple subscribers
163-
Publisher<Integer> result = Flux.concat(
163+
Publisher<Long> result = Flux.concat(
164164
Mono.from(selectCountPublisher).cache(),
165165
Mono.from(selectCountPublisher).cache());
166166

@@ -178,16 +178,16 @@ public void testGetRowsUpdated() {
178178
.bind("x", 0)
179179
.execute(),
180180
deleteResult -> {
181-
Publisher<Integer> deleteCountPublisher = deleteResult.getRowsUpdated();
182-
awaitOne(2, deleteCountPublisher);
181+
Publisher<Long> deleteCountPublisher = deleteResult.getRowsUpdated();
182+
awaitOne(2L, deleteCountPublisher);
183183

184184
// Expect IllegalStateException from multiple Result consumptions.
185185
assertThrows(IllegalStateException.class,
186186
() -> deleteResult.map((row, metadata) -> "unexpected"));
187187
assertThrows(IllegalStateException.class, deleteResult::getRowsUpdated);
188188

189189
// Expect update count publisher to support multiple subscribers
190-
awaitOne(2, deleteCountPublisher);
190+
awaitOne(2L, deleteCountPublisher);
191191
});
192192
}
193193
finally {
@@ -473,7 +473,7 @@ public void testFilter() {
473473
// UpdateCount segment to be published by getRowsUpdated
474474
AtomicReference<UpdateCount> unfilteredUpdateCount =
475475
new AtomicReference<>(null);
476-
awaitOne(1, Flux.from(connection.createStatement(
476+
awaitOne(1L, Flux.from(connection.createStatement(
477477
"INSERT INTO testFilter VALUES (1)")
478478
.execute())
479479
.map(result ->
@@ -529,7 +529,7 @@ public void testFilter() {
529529
.execute())
530530
.block(sqlTimeout());
531531
Result filteredResult = unfilteredResult.filter(segment -> false);
532-
Publisher<Integer> filteredUpdateCounts = filteredResult.getRowsUpdated();
532+
Publisher<Long> filteredUpdateCounts = filteredResult.getRowsUpdated();
533533
assertThrows(
534534
IllegalStateException.class, unfilteredResult::getRowsUpdated);
535535
assertThrows(
@@ -545,13 +545,13 @@ public void testFilter() {
545545
.block(sqlTimeout());
546546
Result filteredResult2 = unfilteredResult2.filter(segment ->
547547
fail("Unexpected invocation"));
548-
Publisher<Integer> unfilteredUpdateCounts =
548+
Publisher<Long> unfilteredUpdateCounts =
549549
unfilteredResult2.getRowsUpdated();
550550
assertThrows(
551551
IllegalStateException.class, filteredResult2::getRowsUpdated);
552552
assertThrows(
553553
IllegalStateException.class, unfilteredResult2::getRowsUpdated);
554-
awaitOne(1, unfilteredUpdateCounts);
554+
awaitOne(1L, unfilteredUpdateCounts);
555555

556556
// Execute an INSERT that fails, and filter Message type segments.
557557
// Expect the Result to not emit {@code onError} when consumed.

0 commit comments

Comments
 (0)