diff --git a/clirr-ignored-differences.xml b/clirr-ignored-differences.xml index 235cb9074..64ec7b232 100644 --- a/clirr-ignored-differences.xml +++ b/clirr-ignored-differences.xml @@ -6,4 +6,14 @@ com/google/cloud/spanner/jdbc/CloudSpannerJdbcConnection com.google.cloud.spanner.Dialect getDialect() + + 7012 + com/google/cloud/spanner/jdbc/CloudSpannerJdbcConnection + void setConvertDmlToMutations(boolean) + + + 7012 + com/google/cloud/spanner/jdbc/CloudSpannerJdbcConnection + boolean isConvertDmlToMutations() + diff --git a/src/main/java/com/google/cloud/spanner/jdbc/CloudSpannerJdbcConnection.java b/src/main/java/com/google/cloud/spanner/jdbc/CloudSpannerJdbcConnection.java index 679fa8716..67e4148ea 100644 --- a/src/main/java/com/google/cloud/spanner/jdbc/CloudSpannerJdbcConnection.java +++ b/src/main/java/com/google/cloud/spanner/jdbc/CloudSpannerJdbcConnection.java @@ -299,6 +299,11 @@ default String getStatementTag() throws SQLException { */ void bufferedWrite(Mutation mutation) throws SQLException; + boolean isConvertDmlToMutations() throws SQLException; + + /** Instructs the JDBC connection to automatically convert DML statements to mutations. */ + void setConvertDmlToMutations(boolean convert) throws SQLException; + /** * Buffers the given mutations locally on the current transaction of this {@link Connection}. The * mutations will be written to the database at the next call to {@link Connection#commit()}. The diff --git a/src/main/java/com/google/cloud/spanner/jdbc/JdbcConnection.java b/src/main/java/com/google/cloud/spanner/jdbc/JdbcConnection.java index 9d75eee3f..b1e5a4706 100644 --- a/src/main/java/com/google/cloud/spanner/jdbc/JdbcConnection.java +++ b/src/main/java/com/google/cloud/spanner/jdbc/JdbcConnection.java @@ -564,6 +564,21 @@ public void bufferedWrite(Iterable mutations) throws SQLException { } } + public boolean isConvertDmlToMutations() throws SQLException { + checkClosed(); + return getSpannerConnection().isConvertDmlToMutations(); + } + + @Override + public void setConvertDmlToMutations(boolean convert) throws SQLException { + checkClosed(); + try { + getSpannerConnection().setConvertDmlToMutations(convert); + } catch (SpannerException e) { + throw JdbcSqlExceptionFactory.of(e); + } + } + @SuppressWarnings("deprecation") private static final class JdbcToSpannerTransactionRetryListener implements com.google.cloud.spanner.connection.TransactionRetryListener {