Skip to content

Commit c5e0b1c

Browse files
Merge pull request #59 from oracle/0-9-0-update
0.9.0 SPI Update
2 parents 068cf0f + 859f341 commit c5e0b1c

File tree

4 files changed

+20
-26
lines changed

4 files changed

+20
-26
lines changed

pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@
2626

2727
<groupId>com.oracle.database.r2dbc</groupId>
2828
<artifactId>oracle-r2dbc</artifactId>
29-
<version>0.3.0</version>
29+
<version>0.4.0</version>
3030
<name>oracle-r2dbc</name>
3131
<description>
32-
Oracle R2DBC Driver implementing version 0.9.0.M2 of the R2DBC SPI for Oracle Database.
32+
Oracle R2DBC Driver implementing version 0.9.0 of the R2DBC SPI for Oracle Database.
3333
</description>
3434
<url>
3535
https://github.com/oracle/oracle-r2dbc
@@ -66,7 +66,7 @@
6666
<properties>
6767
<java.version>11</java.version>
6868
<ojdbc.version>21.3.0.0</ojdbc.version>
69-
<r2dbc.version>0.9.0.RC1</r2dbc.version>
69+
<r2dbc.version>0.9.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/OracleStatementImpl.java

Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -952,8 +952,7 @@ private JdbcStatement(PreparedStatement preparedStatement, Object[] binds) {
952952
* @return A publisher that emits the result of executing this statement
953953
*/
954954
final Publisher<OracleResultImpl> execute() {
955-
956-
if(true)return Flux.usingWhen(Mono.just(new ArrayList<>(1)),
955+
return Flux.usingWhen(Mono.just(new ArrayList<>(1)),
957956
results ->
958957
Mono.from(bind())
959958
.thenMany(executeJdbc())
@@ -962,22 +961,6 @@ final Publisher<OracleResultImpl> execute() {
962961
.onErrorResume(R2dbcException.class, r2dbcException ->
963962
Mono.just(createErrorResult(r2dbcException))),
964963
this::deallocate);
965-
966-
List<OracleResultImpl> results = new ArrayList<>(1);
967-
Publisher<OracleResultImpl> deallocate =
968-
Mono.defer(() -> Mono.from(deallocate(results)))
969-
.cast(OracleResultImpl.class);
970-
971-
return Flux.concatDelayError(
972-
Mono.from(bind())
973-
.thenMany(executeJdbc())
974-
.map(this::getWarnings)
975-
.doOnNext(results::add)
976-
.onErrorResume(R2dbcException.class, r2dbcException ->
977-
Mono.just(createErrorResult(r2dbcException))),
978-
deallocate)
979-
.doOnCancel(() ->
980-
Mono.from(deallocate).subscribe());
981964
}
982965

983966
/**

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -534,6 +534,14 @@ Publisher<Void> publishClobWrite(
534534
*/
535535
Publisher<Void> publishClobFree(Clob clob) throws R2dbcException;
536536

537+
/**
538+
* Returns the {@link AsyncLock} that guards access to the JDBC
539+
* {@link java.sql.Connection} created by this adapter (with
540+
* {@link #publishConnection(DataSource, Executor)}). This lock may be
541+
* acquired asynchronously, such that threads do not contend for the JDBC
542+
* connection or any object created by that connection.
543+
* @return Lock that guards access to the JDBC connection of this adapter.
544+
*/
537545
AsyncLock getLock();
538546

539547
/**

src/test/java/oracle/r2dbc/test/OracleTestKit.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -149,12 +149,14 @@ public String doGetSql(TestStatement statement) {
149149
" FROM test_two_column";
150150
case SELECT_VALUE:
151151
// Use ORDER BY to return rows in a consistent order
152-
return "SELECT value FROM test ORDER BY value";
152+
return "SELECT test_value FROM test ORDER BY test_value";
153153
case CREATE_TABLE_AUTOGENERATED_KEY:
154+
// For Oracle SQL, need to declare "GENERATED ALWAYS AS"
154155
return "CREATE TABLE test (" +
155-
"id NUMBER GENERATED ALWAYS AS IDENTITY, value NUMBER)";
156+
"id NUMBER GENERATED ALWAYS AS IDENTITY, test_value NUMBER)";
156157
case INSERT_VALUE_AUTOGENERATED_KEY:
157-
return "INSERT INTO test(value) VALUES(100)";
158+
// For Oracle SQL, the column name must be specified: test(test_value)
159+
return "INSERT INTO test(test_value) VALUES(100)";
158160
default:
159161
return statement.getSql();
160162
}
@@ -183,7 +185,7 @@ public String doGetSql(TestStatement statement) {
183185
*/
184186
@Override
185187
public Object extractColumn(Row row) {
186-
return extractColumn("value", row);
188+
return extractColumn("test_value", row);
187189
}
188190

189191
/**
@@ -253,7 +255,8 @@ public void duplicateColumnNames() {
253255

254256
.flatMap(result -> result
255257
.map((row, rowMetadata) -> Arrays.asList(
256-
extractColumn("value", row), extractColumn("VALUE", row))))
258+
extractColumn("test_value", row),
259+
extractColumn("TEST_VALUE", row))))
257260
.flatMapIterable(Function.identity())
258261

259262
.concatWith(close(connection)))

0 commit comments

Comments
 (0)