From 1c4d4c8ea331e2efa2897baaca7d6e07a2ec780d Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 31 May 2023 07:00:18 +0000 Subject: [PATCH 01/11] chore(main): release 2.10.1-SNAPSHOT (#1244) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index 116956d90..781d2c109 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 google-cloud-spanner-jdbc - 2.10.0 + 2.10.1-SNAPSHOT jar Google Cloud Spanner JDBC https://github.com/googleapis/java-spanner-jdbc diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 6cd1705d3..675c8fe27 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -28,7 +28,7 @@ com.google.cloud google-cloud-spanner-jdbc - 2.10.0 + 2.10.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 363915b72..151946b0b 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-spanner-jdbc:2.10.0:2.10.0 +google-cloud-spanner-jdbc:2.10.0:2.10.1-SNAPSHOT From f9f861913d174e52966b2e414dd4bf16ca78e3fc Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 31 May 2023 10:28:13 +0200 Subject: [PATCH 02/11] chore(deps): update dependency com.google.cloud:google-cloud-spanner-jdbc to v2.10.0 (#1246) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-spanner-jdbc](https://togithub.com/googleapis/java-spanner-jdbc) | `2.9.16` -> `2.10.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-spanner-jdbc/2.10.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-spanner-jdbc/2.10.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-spanner-jdbc/2.10.0/compatibility-slim/2.9.16)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-spanner-jdbc/2.10.0/confidence-slim/2.9.16)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
googleapis/java-spanner-jdbc ### [`v2.10.0`](https://togithub.com/googleapis/java-spanner-jdbc/blob/HEAD/CHANGELOG.md#​2100-httpsgithubcomgoogleapisjava-spanner-jdbccomparev2916v2100-2023-05-30) [Compare Source](https://togithub.com/googleapis/java-spanner-jdbc/compare/v2.9.16...v2.10.0) ##### Features - Support Savepoint ([#​1212](https://togithub.com/googleapis/java-spanner-jdbc/issues/1212)) ([6833696](https://togithub.com/googleapis/java-spanner-jdbc/commit/683369633627367342b3a40e3abba4fa81069724)) ##### Dependencies - Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.10.1 ([#​1239](https://togithub.com/googleapis/java-spanner-jdbc/issues/1239)) ([8f7e7a7](https://togithub.com/googleapis/java-spanner-jdbc/commit/8f7e7a79be6d7326d7e6bdd6018bb76a695cb1b8)) - Update dependency com.google.cloud:google-cloud-spanner-bom to v6.42.2 ([#​1237](https://togithub.com/googleapis/java-spanner-jdbc/issues/1237)) ([97961b2](https://togithub.com/googleapis/java-spanner-jdbc/commit/97961b2c501d428575e283485386e04f4673d968))
--- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-spanner-jdbc). --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 7ac31aeb4..42875833f 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -29,7 +29,7 @@ com.google.cloud google-cloud-spanner-jdbc - 2.9.16 + 2.10.0 From 397d5738a8126aaf090d533d0f20efb74a77a788 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 31 May 2023 21:03:46 +0200 Subject: [PATCH 03/11] deps: update dependency com.google.cloud:google-cloud-spanner-bom to v6.42.3 (#1248) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 781d2c109..64082e85e 100644 --- a/pom.xml +++ b/pom.xml @@ -62,7 +62,7 @@ com.google.cloud google-cloud-spanner-bom - 6.42.2 + 6.42.3 pom import From 822bc0a3e263da32e77c89a22507e9d31c5a537e Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 2 Jun 2023 16:46:12 +0200 Subject: [PATCH 04/11] chore(deps): update dependency com.google.cloud:libraries-bom to v26.16.0 (#1249) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:libraries-bom](https://cloud.google.com/java/docs/bom) ([source](https://togithub.com/googleapis/java-cloud-bom)) | `26.15.0` -> `26.16.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/26.16.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/26.16.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/26.16.0/compatibility-slim/26.15.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/26.16.0/confidence-slim/26.15.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
googleapis/java-cloud-bom ### [`v26.16.0`](https://togithub.com/googleapis/java-cloud-bom/blob/HEAD/CHANGELOG.md#​26160-httpsgithubcomgoogleapisjava-cloud-bomcomparev26150v26160-2023-05-31) ##### Dependencies - update dependency com.google.cloud:first-party-dependencies to v3.10.0 ([#​6000](https://togithub.com/googleapis/java-cloud-bom/issues/6000)) ([9880029](https://togithub.com/googleapis/java-cloud-bom/commit/9880029ca50417bc05d15cf0af50954256226b47)) - update dependency com.google.cloud:first-party-dependencies to v3.10.1 ([#​6018](https://togithub.com/googleapis/java-cloud-bom/issues/6018)) ([291545a](https://togithub.com/googleapis/java-cloud-bom/commit/291545a9f21bc405cebc547d1b1e8bdc90a4fe46)) - update dependency com.google.cloud:gapic-libraries-bom to v1.12.0 ([#​6002](https://togithub.com/googleapis/java-cloud-bom/issues/6002)) ([27ecac9](https://togithub.com/googleapis/java-cloud-bom/commit/27ecac9088655948c83089c2e3c4f701211d8e45)) - update dependency com.google.cloud:google-cloud-bigquery to v2.27.0 ([#​5993](https://togithub.com/googleapis/java-cloud-bom/issues/5993)) ([a9867e8](https://togithub.com/googleapis/java-cloud-bom/commit/a9867e854f8aea21a488919cb7494aec1a443c7a)) - update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.37.2 ([#​6001](https://togithub.com/googleapis/java-cloud-bom/issues/6001)) ([9f2e1f7](https://togithub.com/googleapis/java-cloud-bom/commit/9f2e1f7725f0cfa207810d069ceed1c3d5ae7a4e)) - update dependency com.google.cloud:google-cloud-bigtable-bom to v2.23.2 ([#​6010](https://togithub.com/googleapis/java-cloud-bom/issues/6010)) ([4aa461c](https://togithub.com/googleapis/java-cloud-bom/commit/4aa461c5897a7df2f3593a7ed55153adf25c5b70)) - update dependency com.google.cloud:google-cloud-datastore-bom to v2.14.7 ([#​6003](https://togithub.com/googleapis/java-cloud-bom/issues/6003)) ([3f38cb1](https://togithub.com/googleapis/java-cloud-bom/commit/3f38cb11a24837c03bda4e005d49db978dd7e1c5)) - update dependency com.google.cloud:google-cloud-firestore-bom to v3.12.0 ([#​6014](https://togithub.com/googleapis/java-cloud-bom/issues/6014)) ([352c3ee](https://togithub.com/googleapis/java-cloud-bom/commit/352c3eeb9481e2ba1679b59d9de3970cd9913580)) - update dependency com.google.cloud:google-cloud-logging-bom to v3.15.2 ([#​6006](https://togithub.com/googleapis/java-cloud-bom/issues/6006)) ([da161ad](https://togithub.com/googleapis/java-cloud-bom/commit/da161adf965666aa123c469120119057e52a93a7)) - update dependency com.google.cloud:google-cloud-logging-logback to v0.130.13-alpha ([#​6011](https://togithub.com/googleapis/java-cloud-bom/issues/6011)) ([c9e6e0f](https://togithub.com/googleapis/java-cloud-bom/commit/c9e6e0f701c9c3ee9ce49218f84334427df49dc4)) - update dependency com.google.cloud:google-cloud-nio to v0.126.16 ([#​6008](https://togithub.com/googleapis/java-cloud-bom/issues/6008)) ([19f3cb0](https://togithub.com/googleapis/java-cloud-bom/commit/19f3cb039c8698e2dd6c2b9d2ed334df688f6810)) - update dependency com.google.cloud:google-cloud-pubsub-bom to v1.123.13 ([#​6009](https://togithub.com/googleapis/java-cloud-bom/issues/6009)) ([5b8348d](https://togithub.com/googleapis/java-cloud-bom/commit/5b8348d926032d4ea3df3e7d1ed52de372e9ad74)) - update dependency com.google.cloud:google-cloud-pubsublite-bom to v1.12.6 ([#​6012](https://togithub.com/googleapis/java-cloud-bom/issues/6012)) ([88e259c](https://togithub.com/googleapis/java-cloud-bom/commit/88e259c36b607d94348d51382712a0f267af76eb)) - update dependency com.google.cloud:google-cloud-spanner-bom to v6.42.2 ([#​5997](https://togithub.com/googleapis/java-cloud-bom/issues/5997)) ([a233987](https://togithub.com/googleapis/java-cloud-bom/commit/a23398776b5304485c5365378b5f93f4eadf0304)) - update dependency com.google.cloud:google-cloud-spanner-bom to v6.42.3 ([#​6016](https://togithub.com/googleapis/java-cloud-bom/issues/6016)) ([e063e7c](https://togithub.com/googleapis/java-cloud-bom/commit/e063e7c2473b369af25c70c098cb7f815e0a59da)) - update dependency com.google.cloud:google-cloud-spanner-jdbc to v2.10.0 ([#​6017](https://togithub.com/googleapis/java-cloud-bom/issues/6017)) ([9f6ec63](https://togithub.com/googleapis/java-cloud-bom/commit/9f6ec63d16d6b3e70177d25709208baaabb93aed)) - update dependency com.google.cloud:google-cloud-storage-bom to v2.22.3 ([#​6007](https://togithub.com/googleapis/java-cloud-bom/issues/6007)) ([0de3cda](https://togithub.com/googleapis/java-cloud-bom/commit/0de3cda024458a7d39b9e3ccf4c77c564d545f96))
--- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-spanner-jdbc). --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index cf10eb51d..06de2d0ec 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -30,7 +30,7 @@ com.google.cloud libraries-bom - 26.15.0 + 26.16.0 pom import From 18d612823a55333eb3aaccfefa0934bda1abf12c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 2 Jun 2023 22:54:14 +0000 Subject: [PATCH 05/11] build(deps): bump cryptography from 39.0.1 to 41.0.0 in /.kokoro (#1251) Bumps [cryptography](https://togithub.com/pyca/cryptography) from 39.0.1 to 41.0.0.
Changelog

Sourced from cryptography's changelog.

41.0.0 - 2023-05-30


* **BACKWARDS INCOMPATIBLE:** Support for OpenSSL less than 1.1.1d has been
  removed.  Users on older version of OpenSSL will need to upgrade.
* **BACKWARDS INCOMPATIBLE:** Support for Python 3.6 has been removed.
* **BACKWARDS INCOMPATIBLE:** Dropped support for LibreSSL < 3.6.
* Updated the minimum supported Rust version (MSRV) to 1.56.0, from 1.48.0.
* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.1.1.
* Added support for the :class:`~cryptography.x509.OCSPAcceptableResponses`
  OCSP extension.
* Added support for the :class:`~cryptography.x509.MSCertificateTemplate`
  proprietary Microsoft certificate extension.
* Implemented support for equality checks on all asymmetric public key types.
* Added support for ``aes256-gcm@openssh.com`` encrypted keys in
  :func:`~cryptography.hazmat.primitives.serialization.load_ssh_private_key`.
* Added support for obtaining X.509 certificate signature algorithm parameters
  (including PSS) via
  :meth:`~cryptography.x509.Certificate.signature_algorithm_parameters`.
* Support signing :class:`~cryptography.hazmat.primitives.asymmetric.padding.PSS`
  X.509 certificates via the new keyword-only argument ``rsa_padding`` on
  :meth:`~cryptography.x509.CertificateBuilder.sign`.
* Added support for
  :class:`~cryptography.hazmat.primitives.ciphers.aead.ChaCha20Poly1305`
  on BoringSSL.

.. _v40-0-2:

40.0.2 - 2023-04-14

  • Fixed compilation when using LibreSSL 3.7.2.
  • Added some functions to support an upcoming pyOpenSSL release.

.. _v40-0-1:

40.0.1 - 2023-03-24


* Fixed a bug where certain operations would fail if an object happened to be
  in the top-half of the memory-space. This only impacted 32-bit systems.

.. _v40-0-0:

40.0.0 - 2023-03-24

  • BACKWARDS INCOMPATIBLE: As announced in the 39.0.0 changelog, the way cryptography links OpenSSL has changed. This only impacts users who

... (truncated)

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=cryptography&package-manager=pip&previous-version=39.0.1&new-version=41.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://togithub.com/googleapis/java-spanner-jdbc/network/alerts).
From 8f75d26c18844617e275feb952db415a067a91d2 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 7 Jun 2023 04:43:32 +0200 Subject: [PATCH 06/11] build(deps): update dependency org.apache.maven.plugins:maven-project-info-reports-plugin to v3.4.5 (#1253) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 64082e85e..3085d4986 100644 --- a/pom.xml +++ b/pom.xml @@ -393,7 +393,7 @@ org.apache.maven.plugins maven-project-info-reports-plugin - 3.4.4 + 3.4.5 From 80d2b9d3e4c3265522bbb20766bff1f164617711 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Knut=20Olav=20L=C3=B8ite?= Date: Thu, 8 Jun 2023 08:16:55 +0200 Subject: [PATCH 07/11] feat: support untyped NULL value parameters (#1224) * feat: support untyped NULL value parameters * test: add tests for untyped null parameter values * fix: update metadata test with the new table * test: add expected table for PG * refactor: move logic to ParameterStore --- .../jdbc/AbstractJdbcPreparedStatement.java | 3 +- .../spanner/jdbc/JdbcParameterStore.java | 24 ++++++- .../jdbc/JdbcPreparedStatementTest.java | 38 +++-------- ...PreparedStatementWithMockedServerTest.java | 67 +++++++++++++++++++ .../jdbc/it/ITJdbcDatabaseMetaDataTest.java | 6 +- .../jdbc/it/ITJdbcPgDatabaseMetaDataTest.java | 2 + .../jdbc/it/ITJdbcPreparedStatementTest.java | 33 +++++++++ .../spanner/jdbc/it/CreateMusicTables.sql | 23 +++++++ .../jdbc/it/CreateMusicTables_Emulator.sql | 23 +++++++ .../spanner/jdbc/it/CreateMusicTables_PG.sql | 21 ++++++ 10 files changed, 204 insertions(+), 36 deletions(-) diff --git a/src/main/java/com/google/cloud/spanner/jdbc/AbstractJdbcPreparedStatement.java b/src/main/java/com/google/cloud/spanner/jdbc/AbstractJdbcPreparedStatement.java index 847f54d38..cd1c50a73 100644 --- a/src/main/java/com/google/cloud/spanner/jdbc/AbstractJdbcPreparedStatement.java +++ b/src/main/java/com/google/cloud/spanner/jdbc/AbstractJdbcPreparedStatement.java @@ -81,7 +81,8 @@ public void addBatch(String sql) throws SQLException { @Override public void setNull(int parameterIndex, int sqlType) throws SQLException { checkClosed(); - parameters.setParameter(parameterIndex, null, sqlType, null); + parameters.setParameter( + parameterIndex, /* value = */ null, sqlType, /* scaleOrLength = */ null); } @Override diff --git a/src/main/java/com/google/cloud/spanner/jdbc/JdbcParameterStore.java b/src/main/java/com/google/cloud/spanner/jdbc/JdbcParameterStore.java index 3ce105aa7..5fb4177fc 100644 --- a/src/main/java/com/google/cloud/spanner/jdbc/JdbcParameterStore.java +++ b/src/main/java/com/google/cloud/spanner/jdbc/JdbcParameterStore.java @@ -24,6 +24,7 @@ import com.google.cloud.spanner.Value; import com.google.cloud.spanner.ValueBinder; import com.google.common.io.CharStreams; +import com.google.protobuf.NullValue; import com.google.rpc.Code; import java.io.IOException; import java.io.InputStream; @@ -231,6 +232,10 @@ void setParameter( } private void checkTypeAndValueSupported(Object value, int sqlType) throws SQLException { + if (value == null) { + // null is always supported, as we will just fall back to an untyped NULL value. + return; + } if (!isTypeSupported(sqlType)) { throw JdbcSqlExceptionFactory.of( "Type " + sqlType + " is not supported", Code.INVALID_ARGUMENT); @@ -775,8 +780,13 @@ private Builder setArrayValue(ValueBinder binder, int type, Object valu case Types.LONGVARBINARY: case Types.BLOB: return binder.toBytesArray(null); + default: + return binder.to( + Value.untyped( + com.google.protobuf.Value.newBuilder() + .setNullValue(NullValue.NULL_VALUE) + .build())); } - throw JdbcSqlExceptionFactory.unsupported("Unknown/unsupported array base type: " + type); } if (boolean[].class.isAssignableFrom(value.getClass())) { @@ -864,7 +874,9 @@ private List toDoubleList(Number[] input) { */ private Builder setNullValue(ValueBinder binder, Integer sqlType) { if (sqlType == null) { - return binder.to((String) null); + return binder.to( + Value.untyped( + com.google.protobuf.Value.newBuilder().setNullValue(NullValue.NULL_VALUE).build())); } switch (sqlType) { case Types.BIGINT: @@ -924,8 +936,14 @@ private Builder setNullValue(ValueBinder binder, Integer sqlType) { return binder.to((ByteArray) null); case Types.VARCHAR: return binder.to((String) null); + case JsonType.VENDOR_TYPE_NUMBER: + return binder.to(Value.json(null)); + case PgJsonbType.VENDOR_TYPE_NUMBER: + return binder.to(Value.pgJsonb(null)); default: - throw new IllegalArgumentException("Unsupported sql type for setting to null: " + sqlType); + return binder.to( + Value.untyped( + com.google.protobuf.Value.newBuilder().setNullValue(NullValue.NULL_VALUE).build())); } } } diff --git a/src/test/java/com/google/cloud/spanner/jdbc/JdbcPreparedStatementTest.java b/src/test/java/com/google/cloud/spanner/jdbc/JdbcPreparedStatementTest.java index b4c33a802..8f21e68d3 100644 --- a/src/test/java/com/google/cloud/spanner/jdbc/JdbcPreparedStatementTest.java +++ b/src/test/java/com/google/cloud/spanner/jdbc/JdbcPreparedStatementTest.java @@ -20,7 +20,6 @@ import static org.junit.Assert.assertNull; import static org.junit.Assert.assertThrows; import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; import static org.mockito.Mockito.any; import static org.mockito.Mockito.anyString; import static org.mockito.Mockito.mock; @@ -39,7 +38,6 @@ import com.google.cloud.spanner.Value; import com.google.cloud.spanner.connection.AbstractStatementParser; import com.google.cloud.spanner.connection.Connection; -import com.google.rpc.Code; import java.io.ByteArrayInputStream; import java.io.StringReader; import java.math.BigDecimal; @@ -47,7 +45,6 @@ import java.net.URL; import java.sql.Date; import java.sql.JDBCType; -import java.sql.PreparedStatement; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Time; @@ -197,7 +194,10 @@ public void testParameters() throws SQLException, MalformedURLException { ps.setObject(35, "TEST"); ps.setObject(36, "TEST", Types.NVARCHAR); ps.setObject(37, "TEST", Types.NVARCHAR, 20); + ps.setRef(38, null); + ps.setRowId(39, null); ps.setShort(40, (short) 1); + ps.setSQLXML(41, null); ps.setString(42, "TEST"); ps.setTime(43, new Time(1000L)); ps.setTime(44, new Time(1000L), Calendar.getInstance(TimeZone.getTimeZone("GMT"))); @@ -211,8 +211,6 @@ public void testParameters() throws SQLException, MalformedURLException { ps.setObject(52, "{}", JsonType.VENDOR_TYPE_NUMBER); ps.setObject(53, "{}", PgJsonbType.VENDOR_TYPE_NUMBER); - testSetUnsupportedTypes(ps); - JdbcParameterMetaData pmd = ps.getParameterMetaData(); assertEquals(numberOfParams, pmd.getParameterCount()); assertEquals(JdbcArray.class.getName(), pmd.getParameterClassName(1)); @@ -274,33 +272,9 @@ public void testParameters() throws SQLException, MalformedURLException { } } - private void testSetUnsupportedTypes(PreparedStatement ps) { - try { - ps.setRef(38, null); - fail("missing expected exception"); - } catch (SQLException e) { - assertTrue(e instanceof JdbcSqlException); - assertEquals(Code.INVALID_ARGUMENT, ((JdbcSqlException) e).getCode()); - } - try { - ps.setRowId(39, null); - fail("missing expected exception"); - } catch (SQLException e) { - assertTrue(e instanceof JdbcSqlException); - assertEquals(Code.INVALID_ARGUMENT, ((JdbcSqlException) e).getCode()); - } - try { - ps.setSQLXML(41, null); - fail("missing expected exception"); - } catch (SQLException e) { - assertTrue(e instanceof JdbcSqlException); - assertEquals(Code.INVALID_ARGUMENT, ((JdbcSqlException) e).getCode()); - } - } - @Test public void testSetNullValues() throws SQLException { - final int numberOfParameters = 27; + final int numberOfParameters = 31; String sql = generateSqlWithParameters(numberOfParameters); try (JdbcPreparedStatement ps = new JdbcPreparedStatement(createMockConnection(), sql)) { int index = 0; @@ -331,6 +305,10 @@ public void testSetNullValues() throws SQLException { ps.setNull(++index, Types.BIT); ps.setNull(++index, Types.VARBINARY); ps.setNull(++index, Types.VARCHAR); + ps.setNull(++index, JsonType.VENDOR_TYPE_NUMBER); + ps.setNull(++index, PgJsonbType.VENDOR_TYPE_NUMBER); + ps.setNull(++index, Types.OTHER); + ps.setNull(++index, Types.NULL); assertEquals(numberOfParameters, index); JdbcParameterMetaData pmd = ps.getParameterMetaData(); diff --git a/src/test/java/com/google/cloud/spanner/jdbc/JdbcPreparedStatementWithMockedServerTest.java b/src/test/java/com/google/cloud/spanner/jdbc/JdbcPreparedStatementWithMockedServerTest.java index 9da17d7db..d3607d842 100644 --- a/src/test/java/com/google/cloud/spanner/jdbc/JdbcPreparedStatementWithMockedServerTest.java +++ b/src/test/java/com/google/cloud/spanner/jdbc/JdbcPreparedStatementWithMockedServerTest.java @@ -25,6 +25,7 @@ import com.google.cloud.spanner.MockSpannerServiceImpl; import com.google.cloud.spanner.MockSpannerServiceImpl.StatementResult; import com.google.cloud.spanner.Statement; +import com.google.cloud.spanner.Value; import com.google.cloud.spanner.connection.SpannerPool; import com.google.cloud.spanner.jdbc.JdbcSqlExceptionFactory.JdbcSqlBatchUpdateException; import io.grpc.Server; @@ -36,6 +37,7 @@ import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; +import java.sql.Types; import java.util.Arrays; import java.util.Collection; import org.junit.After; @@ -193,4 +195,69 @@ public void testExecuteBatch_withException() throws SQLException { } } } + + @Test + public void testInsertUntypedNullValues() throws SQLException { + mockSpanner.putStatementResult( + StatementResult.update( + Statement.newBuilder( + "insert into all_nullable_types (ColInt64, ColFloat64, ColBool, ColString, ColBytes, ColDate, ColTimestamp, ColNumeric, ColJson, ColInt64Array, ColFloat64Array, ColBoolArray, ColStringArray, ColBytesArray, ColDateArray, ColTimestampArray, ColNumericArray, ColJsonArray) " + + "values (@p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10, @p11, @p12, @p13, @p14, @p15, @p16, @p17, @p18)") + .bind("p1") + .to((Value) null) + .bind("p2") + .to((Value) null) + .bind("p3") + .to((Value) null) + .bind("p4") + .to((Value) null) + .bind("p5") + .to((Value) null) + .bind("p6") + .to((Value) null) + .bind("p7") + .to((Value) null) + .bind("p8") + .to((Value) null) + .bind("p9") + .to((Value) null) + .bind("p10") + .to((Value) null) + .bind("p11") + .to((Value) null) + .bind("p12") + .to((Value) null) + .bind("p13") + .to((Value) null) + .bind("p14") + .to((Value) null) + .bind("p15") + .to((Value) null) + .bind("p16") + .to((Value) null) + .bind("p17") + .to((Value) null) + .bind("p18") + .to((Value) null) + .build(), + 1L)); + try (Connection connection = createConnection()) { + for (int type : new int[] {Types.OTHER, Types.NULL}) { + try (PreparedStatement statement = + connection.prepareStatement( + "insert into all_nullable_types (" + + "ColInt64, ColFloat64, ColBool, ColString, ColBytes, ColDate, ColTimestamp, ColNumeric, ColJson, " + + "ColInt64Array, ColFloat64Array, ColBoolArray, ColStringArray, ColBytesArray, ColDateArray, ColTimestampArray, ColNumericArray, ColJsonArray) " + + "values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)")) { + for (int param = 1; + param <= statement.getParameterMetaData().getParameterCount(); + param++) { + statement.setNull(param, type); + } + assertEquals(1, statement.executeUpdate()); + } + mockSpanner.clearRequests(); + } + } + } } diff --git a/src/test/java/com/google/cloud/spanner/jdbc/it/ITJdbcDatabaseMetaDataTest.java b/src/test/java/com/google/cloud/spanner/jdbc/it/ITJdbcDatabaseMetaDataTest.java index ea7c236a4..7e2481a23 100644 --- a/src/test/java/com/google/cloud/spanner/jdbc/it/ITJdbcDatabaseMetaDataTest.java +++ b/src/test/java/com/google/cloud/spanner/jdbc/it/ITJdbcDatabaseMetaDataTest.java @@ -512,7 +512,8 @@ private IndexInfo( new IndexInfo("TableWithRef", false, "PRIMARY_KEY", 1, "Id", "A"), new IndexInfo("TableWithRef", true, "FOREIGN_KEY", 1, "RefFloat", "A"), new IndexInfo("TableWithRef", true, "FOREIGN_KEY", 2, "RefString", "A"), - new IndexInfo("TableWithRef", true, "FOREIGN_KEY", 3, "RefDate", "A")); + new IndexInfo("TableWithRef", true, "FOREIGN_KEY", 3, "RefDate", "A"), + new IndexInfo("all_nullable_types", false, "PRIMARY_KEY", 1, "ColInt64", "A")); @Test public void testGetIndexInfo() throws SQLException { @@ -860,7 +861,8 @@ private Table(String name, String type) { new Table("SingersView", "VIEW"), new Table("Songs"), new Table("TableWithAllColumnTypes"), - new Table("TableWithRef")); + new Table("TableWithRef"), + new Table("all_nullable_types")); @Test public void testGetTables() throws SQLException { diff --git a/src/test/java/com/google/cloud/spanner/jdbc/it/ITJdbcPgDatabaseMetaDataTest.java b/src/test/java/com/google/cloud/spanner/jdbc/it/ITJdbcPgDatabaseMetaDataTest.java index bbd37122c..ff0bff7a9 100644 --- a/src/test/java/com/google/cloud/spanner/jdbc/it/ITJdbcPgDatabaseMetaDataTest.java +++ b/src/test/java/com/google/cloud/spanner/jdbc/it/ITJdbcPgDatabaseMetaDataTest.java @@ -420,6 +420,7 @@ private IndexInfo( new IndexInfo("albums", false, "PRIMARY_KEY", 1, "singerid", "A"), new IndexInfo("albums", false, "PRIMARY_KEY", 2, "albumid", "A"), new IndexInfo("albums", true, "albumsbyalbumtitle", 1, "albumtitle", "A"), + new IndexInfo("all_nullable_types", false, "PRIMARY_KEY", 1, "colint64", "A"), new IndexInfo("concerts", false, "PRIMARY_KEY", 1, "venueid", "A"), new IndexInfo("concerts", false, "PRIMARY_KEY", 2, "singerid", "A"), new IndexInfo("concerts", false, "PRIMARY_KEY", 3, "concertdate", "A"), @@ -790,6 +791,7 @@ private Table(String name, String type) { private static final List EXPECTED_TABLES = Arrays.asList( new Table("albums"), + new Table("all_nullable_types"), new Table("concerts"), new Table("singers"), // TODO: Enable when views are supported for PostgreSQL dialect databases. diff --git a/src/test/java/com/google/cloud/spanner/jdbc/it/ITJdbcPreparedStatementTest.java b/src/test/java/com/google/cloud/spanner/jdbc/it/ITJdbcPreparedStatementTest.java index c1d841696..2864559c8 100644 --- a/src/test/java/com/google/cloud/spanner/jdbc/it/ITJdbcPreparedStatementTest.java +++ b/src/test/java/com/google/cloud/spanner/jdbc/it/ITJdbcPreparedStatementTest.java @@ -1294,6 +1294,39 @@ public void test12_InsertReturningTestData() throws SQLException { } } + @Test + public void test13_InsertUntypedNullValues() throws SQLException { + try (Connection connection = createConnection(env, database)) { + try (PreparedStatement preparedStatement = + connection.prepareStatement( + "insert into all_nullable_types (" + + "ColInt64, ColFloat64, ColBool, ColString, ColBytes, ColDate, ColTimestamp, ColNumeric, ColJson, " + + "ColInt64Array, ColFloat64Array, ColBoolArray, ColStringArray, ColBytesArray, ColDateArray, ColTimestampArray, ColNumericArray, ColJsonArray) " + + "values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)")) { + for (int param = 1; + param <= preparedStatement.getParameterMetaData().getParameterCount(); + param++) { + preparedStatement.setNull(param, Types.OTHER); + } + if (getDialect() == Dialect.POSTGRESQL) { + // PostgreSQL-dialect databases do not allow NULLs in primary keys. + preparedStatement.setLong(1, 1L); + } + assertEquals(1, preparedStatement.executeUpdate()); + + // Verify that calling preparedStatement.setObject(index, null) works. + for (int param = 1; + param <= preparedStatement.getParameterMetaData().getParameterCount(); + param++) { + preparedStatement.setObject(param, null); + } + // We need a different primary key value to insert another row. + preparedStatement.setLong(1, 2L); + assertEquals(1, preparedStatement.executeUpdate()); + } + } + } + private List readValuesFromFile(String filename) { StringBuilder builder = new StringBuilder(); try (InputStream stream = ITJdbcPreparedStatementTest.class.getResourceAsStream(filename)) { diff --git a/src/test/resources/com/google/cloud/spanner/jdbc/it/CreateMusicTables.sql b/src/test/resources/com/google/cloud/spanner/jdbc/it/CreateMusicTables.sql index 24579b272..153dd773d 100644 --- a/src/test/resources/com/google/cloud/spanner/jdbc/it/CreateMusicTables.sql +++ b/src/test/resources/com/google/cloud/spanner/jdbc/it/CreateMusicTables.sql @@ -97,6 +97,29 @@ CREATE TABLE TableWithAllColumnTypes ( ) PRIMARY KEY (ColInt64) ; +CREATE TABLE all_nullable_types ( + ColInt64 INT64, + ColFloat64 FLOAT64, + ColBool BOOL, + ColString STRING(100), + ColBytes BYTES(100), + ColDate DATE, + ColTimestamp TIMESTAMP, + ColNumeric NUMERIC, + ColJson JSON, + + ColInt64Array ARRAY, + ColFloat64Array ARRAY, + ColBoolArray ARRAY, + ColStringArray ARRAY, + ColBytesArray ARRAY, + ColDateArray ARRAY, + ColTimestampArray ARRAY, + ColNumericArray ARRAY, + ColJsonArray ARRAY, +) PRIMARY KEY (ColInt64) +; + CREATE TABLE TableWithRef ( Id INT64 NOT NULL, RefFloat FLOAT64 NOT NULL, diff --git a/src/test/resources/com/google/cloud/spanner/jdbc/it/CreateMusicTables_Emulator.sql b/src/test/resources/com/google/cloud/spanner/jdbc/it/CreateMusicTables_Emulator.sql index aaba70c19..6aa8e843c 100644 --- a/src/test/resources/com/google/cloud/spanner/jdbc/it/CreateMusicTables_Emulator.sql +++ b/src/test/resources/com/google/cloud/spanner/jdbc/it/CreateMusicTables_Emulator.sql @@ -92,6 +92,29 @@ CREATE TABLE TableWithAllColumnTypes ( ) PRIMARY KEY (ColInt64) ; +CREATE TABLE all_nullable_types ( + ColInt64 INT64, + ColFloat64 FLOAT64, + ColBool BOOL, + ColString STRING(100), + ColBytes BYTES(100), + ColDate DATE, + ColTimestamp TIMESTAMP, + ColNumeric NUMERIC, + ColJson JSON, + + ColInt64Array ARRAY, + ColFloat64Array ARRAY, + ColBoolArray ARRAY, + ColStringArray ARRAY, + ColBytesArray ARRAY, + ColDateArray ARRAY, + ColTimestampArray ARRAY, + ColNumericArray ARRAY, + ColJsonArray ARRAY, +) PRIMARY KEY (ColInt64) +; + CREATE TABLE TableWithRef ( Id INT64 NOT NULL, RefFloat FLOAT64 NOT NULL, diff --git a/src/test/resources/com/google/cloud/spanner/jdbc/it/CreateMusicTables_PG.sql b/src/test/resources/com/google/cloud/spanner/jdbc/it/CreateMusicTables_PG.sql index 438d2d5df..c77968b45 100644 --- a/src/test/resources/com/google/cloud/spanner/jdbc/it/CreateMusicTables_PG.sql +++ b/src/test/resources/com/google/cloud/spanner/jdbc/it/CreateMusicTables_PG.sql @@ -74,6 +74,27 @@ CREATE TABLE TableWithAllColumnTypes ( ColNumeric NUMERIC NOT NULL, ColJson VARCHAR NOT NULL ); +CREATE TABLE all_nullable_types ( + ColInt64 bigint primary key, + ColFloat64 float8, + ColBool boolean, + ColString varchar(100), + ColBytes bytea, + ColDate date, + ColTimestamp timestamptz, + ColNumeric numeric, + ColJson jsonb, + + ColInt64Array bigint[], + ColFloat64Array float8[], + ColBoolArray boolean[], + ColStringArray varchar(100)[], + ColBytesArray bytea[], + ColDateArray date[], + ColTimestampArray timestamptz[], + ColNumericArray numeric[], + ColJsonArray jsonb[] +); CREATE TABLE TableWithRef ( Id BIGINT NOT NULL PRIMARY KEY, From 41f40fce634cea205d5e5a9c1eb567ecb97ff655 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 12 Jun 2023 10:36:45 +0200 Subject: [PATCH 08/11] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v3.11.0 (#1254) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 3085d4986..422b4c938 100644 --- a/pom.xml +++ b/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-shared-dependencies - 3.10.1 + 3.11.0 pom import From 0a564d9f967fa25244ea6750ad74b22403a05244 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 12 Jun 2023 16:18:22 +0200 Subject: [PATCH 09/11] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v1.5.6 (#1250) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 422b4c938..923ec36de 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 1.5.5 + 1.5.6 From ffe36b6b2087157c8d895fa348cff614435a4735 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 12 Jun 2023 17:44:14 +0200 Subject: [PATCH 10/11] deps: update dependency com.google.cloud:google-cloud-spanner-bom to v6.43.0 (#1255) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-spanner-bom](https://togithub.com/googleapis/java-spanner) | `6.42.3` -> `6.43.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-spanner-bom/6.43.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-spanner-bom/6.43.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-spanner-bom/6.43.0/compatibility-slim/6.42.3)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-spanner-bom/6.43.0/confidence-slim/6.42.3)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
googleapis/java-spanner ### [`v6.43.0`](https://togithub.com/googleapis/java-spanner/blob/HEAD/CHANGELOG.md#​6430-httpsgithubcomgoogleapisjava-spannercomparev6423v6430-2023-06-07) [Compare Source](https://togithub.com/googleapis/java-spanner/compare/v6.42.3...v6.43.0) ##### Features - Delay transaction start option ([#​2462](https://togithub.com/googleapis/java-spanner/issues/2462)) ([f1cbd16](https://togithub.com/googleapis/java-spanner/commit/f1cbd168a7e5f48206cdfc2d782835cf7ccb8b0d)) - Make administrative request retries optional ([#​2476](https://togithub.com/googleapis/java-spanner/issues/2476)) ([ee6548c](https://togithub.com/googleapis/java-spanner/commit/ee6548cfa511d6efc99f508290ed0b1ce025a4cc)) ##### Dependencies - Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.11.0 ([#​2486](https://togithub.com/googleapis/java-spanner/issues/2486)) ([82400d5](https://togithub.com/googleapis/java-spanner/commit/82400d5576c3ffe08ff6bb94d8b1a307e2f41662))
--- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-spanner-jdbc). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 923ec36de..55e62450c 100644 --- a/pom.xml +++ b/pom.xml @@ -62,7 +62,7 @@ com.google.cloud google-cloud-spanner-bom - 6.42.3 + 6.43.0 pom import From cf417c1777957cd14bb32af1c81d49015a26c6aa Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 12 Jun 2023 18:40:13 +0000 Subject: [PATCH 11/11] chore(main): release 2.11.0 (#1256) :robot: I have created a release *beep* *boop* --- ## [2.11.0](https://togithub.com/googleapis/java-spanner-jdbc/compare/v2.10.0...v2.11.0) (2023-06-12) ### Features * Support untyped NULL value parameters ([#1224](https://togithub.com/googleapis/java-spanner-jdbc/issues/1224)) ([80d2b9d](https://togithub.com/googleapis/java-spanner-jdbc/commit/80d2b9d3e4c3265522bbb20766bff1f164617711)) ### Dependencies * Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.11.0 ([#1254](https://togithub.com/googleapis/java-spanner-jdbc/issues/1254)) ([41f40fc](https://togithub.com/googleapis/java-spanner-jdbc/commit/41f40fce634cea205d5e5a9c1eb567ecb97ff655)) * Update dependency com.google.cloud:google-cloud-spanner-bom to v6.42.3 ([#1248](https://togithub.com/googleapis/java-spanner-jdbc/issues/1248)) ([397d573](https://togithub.com/googleapis/java-spanner-jdbc/commit/397d5738a8126aaf090d533d0f20efb74a77a788)) * Update dependency com.google.cloud:google-cloud-spanner-bom to v6.43.0 ([#1255](https://togithub.com/googleapis/java-spanner-jdbc/issues/1255)) ([ffe36b6](https://togithub.com/googleapis/java-spanner-jdbc/commit/ffe36b6b2087157c8d895fa348cff614435a4735)) --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- CHANGELOG.md | 14 ++++++++++++++ pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 57a583fc9..d51198acb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,19 @@ # Changelog +## [2.11.0](https://github.com/googleapis/java-spanner-jdbc/compare/v2.10.0...v2.11.0) (2023-06-12) + + +### Features + +* Support untyped NULL value parameters ([#1224](https://github.com/googleapis/java-spanner-jdbc/issues/1224)) ([80d2b9d](https://github.com/googleapis/java-spanner-jdbc/commit/80d2b9d3e4c3265522bbb20766bff1f164617711)) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.11.0 ([#1254](https://github.com/googleapis/java-spanner-jdbc/issues/1254)) ([41f40fc](https://github.com/googleapis/java-spanner-jdbc/commit/41f40fce634cea205d5e5a9c1eb567ecb97ff655)) +* Update dependency com.google.cloud:google-cloud-spanner-bom to v6.42.3 ([#1248](https://github.com/googleapis/java-spanner-jdbc/issues/1248)) ([397d573](https://github.com/googleapis/java-spanner-jdbc/commit/397d5738a8126aaf090d533d0f20efb74a77a788)) +* Update dependency com.google.cloud:google-cloud-spanner-bom to v6.43.0 ([#1255](https://github.com/googleapis/java-spanner-jdbc/issues/1255)) ([ffe36b6](https://github.com/googleapis/java-spanner-jdbc/commit/ffe36b6b2087157c8d895fa348cff614435a4735)) + ## [2.10.0](https://github.com/googleapis/java-spanner-jdbc/compare/v2.9.16...v2.10.0) (2023-05-30) diff --git a/pom.xml b/pom.xml index 55e62450c..9b0d4aec6 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 google-cloud-spanner-jdbc - 2.10.1-SNAPSHOT + 2.11.0 jar Google Cloud Spanner JDBC https://github.com/googleapis/java-spanner-jdbc diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 675c8fe27..9b0ce3fe4 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -28,7 +28,7 @@ com.google.cloud google-cloud-spanner-jdbc - 2.10.1-SNAPSHOT + 2.11.0 diff --git a/versions.txt b/versions.txt index 151946b0b..bee319b9a 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-spanner-jdbc:2.10.0:2.10.1-SNAPSHOT +google-cloud-spanner-jdbc:2.11.0:2.11.0