Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
030f328
Compile against 0.9.0.M2 SPI
Michael-A-McMahon Jul 18, 2021
9e9d2ce
Parse Object returned by Option.get(...)
Michael-A-McMahon Jul 18, 2021
e6bcb58
Remove getColumnNames() implementation
Michael-A-McMahon Jul 18, 2021
3fff5b9
Add methods to compile with 0.9.0.M2 SPI
Michael-A-McMahon Jul 18, 2021
b6cae2a
Merge branch 'main' of https://github.com/oracle/oracle-r2dbc into sp…
Michael-A-McMahon Jul 24, 2021
ec36bbd
Reworked metadata and result implements for 0.9.0.M2
Michael-A-McMahon Aug 8, 2021
0f51c9e
Support statement timeout
Michael-A-McMahon Aug 8, 2021
40b9d91
Map BatchUpdateException to UpdateCount and Message Segments
Michael-A-McMahon Aug 9, 2021
82135a2
Emit R2dbcExceptions as a Result Message Segment
Michael-A-McMahon Aug 9, 2021
1b2caaa
Implement Lifecycle with begin/endRequest
Michael-A-McMahon Aug 9, 2021
d530107
Add JavaDocs
Michael-A-McMahon Aug 9, 2021
cf95001
Add Result.filter(Predicate) test
Michael-A-McMahon Aug 9, 2021
3db01cb
Add test for Result.flatMap(Function)
Michael-A-McMahon Aug 9, 2021
a39c32f
Expect OracleType.TIMESTAMP_WITH_TIME_ZONE
Michael-A-McMahon Aug 9, 2021
cd06ec9
Merge branch 'main' of https://github.com/oracle/oracle-r2dbc into sp…
Michael-A-McMahon Aug 9, 2021
87dbc78
Publish a SQLWarning chain as Result Message Segments
Michael-A-McMahon Aug 10, 2021
f90cd92
Fix names and JavaDoc in ReadablesMetadata
Michael-A-McMahon Aug 10, 2021
ef6d84e
Resolve some TODOs in test code
Michael-A-McMahon Aug 10, 2021
8115cc1
Supporting Option for OOB connection property
Michael-A-McMahon Aug 10, 2021
55c6c54
Leave OOB enabled by default
Michael-A-McMahon Aug 11, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,9 @@ Options. For Options having any of the following names, a CharSequence value may
- [oracle.jdbc.fanEnabled](https://docs.oracle.com/en/database/oracle/oracle-database/21/jajdb/oracle/jdbc/OracleConnection.html?is-external=true#CONNECTION_PROPERTY_FAN_ENABLED)
- [oracle.jdbc.implicitStatementCacheSize](https://docs.oracle.com/en/database/oracle/oracle-database/21/jajdb/oracle/jdbc/OracleConnection.html?is-external=true#CONNECTION_PROPERTY_IMPLICIT_STATEMENT_CACHE_SIZE)
- [oracle.jdbc.defaultLobPrefetchSize](https://docs.oracle.com/en/database/oracle/oracle-database/21/jajdb/oracle/jdbc/OracleConnection.html?is-external=true#CONNECTION_PROPERTY_DEFAULT_LOB_PREFETCH_SIZE)
- [oracle.net.disableOob](https://docs.oracle.com/en/database/oracle/oracle-database/21/jajdb/oracle/jdbc/OracleConnection.html?is-external=true#CONNECTION_PROPERTY_THIN_NET_DISABLE_OUT_OF_BAND_BREAK)
- Out of band (oob) breaks effect statement timeouts. Set this to "true"
if statement timeouts are not working correctly.
- Oracle Net Descriptors of the form ```(DESCRIPTION=...)``` may be specified as an io.r2dbc.spi.Option having the name `oracleNetDescriptor`.
- If `oracleNetDescriptor` is specified, then it is invalid to specify any other options that might conflict with information in the descriptor, such as: `HOST`, `PORT`, `DATABASE`, and `SSL`.
- The `oracleNetDescriptor` option may appear in the query section of an R2DBC URL: `r2dbc:oracle://?oracleNetDescriptor=(DESCRIPTION=...)`
Expand Down
4 changes: 2 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
<version>0.2.0</version>
<name>oracle-r2dbc</name>
<description>
Oracle R2DBC Driver implementing version 0.9.0.M1 of the R2DBC SPI for Oracle Database.
Oracle R2DBC Driver implementing version 0.9.0.M2 of the R2DBC SPI for Oracle Database.
</description>
<url>
https://github.com/oracle/oracle-r2dbc
Expand Down Expand Up @@ -66,7 +66,7 @@
<properties>
<java.version>11</java.version>
<ojdbc.version>21.1.0.0</ojdbc.version>
<r2dbc.version>0.9.0.M1</r2dbc.version>
<r2dbc.version>0.9.0.M2</r2dbc.version>
<reactor.version>3.3.0.RELEASE</reactor.version>
<reactive-streams.version>1.0.3</reactive-streams.version>
<junit.version>5.7.0</junit.version>
Expand Down
3 changes: 3 additions & 0 deletions src/main/java/oracle/r2dbc/OracleR2dbcTypes.java
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,9 @@ private OracleR2dbcTypes() {}
public static final Type INTERVAL_YEAR_TO_MONTH =
new TypeImpl(Period.class, "INTERVAL YEAR TO MONTH");

/**
* Stores a JSON value.
*/
public static final Type JSON =
new TypeImpl(OracleJsonObject.class, "JSON");

Expand Down
20 changes: 15 additions & 5 deletions src/main/java/oracle/r2dbc/impl/OracleBatchImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
package oracle.r2dbc.impl;

import java.sql.Connection;
import java.time.Duration;
import java.util.LinkedList;
import java.util.Queue;
import java.util.concurrent.atomic.AtomicReference;
Expand Down Expand Up @@ -62,6 +63,11 @@ final class OracleBatchImpl implements Batch {
*/
private final Connection jdbcConnection;

/**
* Timeout applied to each statement this {@code Batch} executes;
*/
private final Duration timeout;

/**
* Ordered sequence of SQL commands that have been added to this batch. May
* be empty.
Expand All @@ -71,14 +77,17 @@ final class OracleBatchImpl implements Batch {
/**
* Constructs a new batch that uses the specified {@code adapter} to execute
* SQL statements with a {@code jdbcConnection}.
* @param adapter Adapts JDBC calls into reactive streams.
* @param jdbcConnection JDBC connection to an Oracle Database.
* @param timeout Timeout applied to each statement this batch executes.
* Not null. Not negative.
* @param jdbcConnection JDBC connection to an Oracle Database. Not null.
* @param adapter Adapts JDBC calls into reactive streams. Not null.
*/
OracleBatchImpl(
ReactiveJdbcAdapter adapter, java.sql.Connection jdbcConnection) {
this.adapter = requireNonNull(adapter, "adapter is null");
Duration timeout, Connection jdbcConnection, ReactiveJdbcAdapter adapter) {
this.timeout = timeout;
this.jdbcConnection =
requireNonNull(jdbcConnection, "jdbcConnection is null");
this.adapter = requireNonNull(adapter, "adapter is null");
}

/**
Expand All @@ -92,7 +101,8 @@ final class OracleBatchImpl implements Batch {
public Batch add(String sql) {
requireOpenConnection(jdbcConnection);
requireNonNull(sql, "sql is null");
statements.add(new OracleStatementImpl(adapter, jdbcConnection, sql));
statements.add(
new OracleStatementImpl(sql, timeout, jdbcConnection, adapter));
return this;
}

Expand Down
Loading