From 24b986b03a785f4c5ee978dcdc57f51687701e52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Knut=20Olav=20L=C3=B8ite?= Date: Thu, 11 Jun 2020 01:09:42 +0200 Subject: [PATCH] fix: backend now supports optimizer version for DML (#252) * fix: backend now supports optimizer version for DML * fix: update shared config to prevent build failures * fix: update shared config in samples * fix: upgrade spanner version in install-without-bom * fix: try with java11 * deps: ignore autovalue * deps: add auto-value dependency * fix: fix linting error and revert to Java8 --- .kokoro/build.sh | 4 +- google-cloud-spanner-bom/pom.xml | 2 +- .../cloud/spanner/it/ITQueryOptionsTest.java | 52 ++++++++++--------- .../pom.xml | 15 ++++++ .../pom.xml | 15 ++++++ grpc-google-cloud-spanner-v1/pom.xml | 15 ++++++ pom.xml | 2 +- samples/install-without-bom/pom.xml | 4 +- samples/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 11 files changed, 80 insertions(+), 35 deletions(-) diff --git a/.kokoro/build.sh b/.kokoro/build.sh index e6a5c03310..f46042a8f0 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -51,9 +51,7 @@ test) RETURN_CODE=$? ;; lint) - mvn \ - -Penable-samples \ - com.coveo:fmt-maven-plugin:check + mvn com.coveo:fmt-maven-plugin:check RETURN_CODE=$? ;; javadoc) diff --git a/google-cloud-spanner-bom/pom.xml b/google-cloud-spanner-bom/pom.xml index 75132f6c1c..df100fba27 100644 --- a/google-cloud-spanner-bom/pom.xml +++ b/google-cloud-spanner-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud google-cloud-shared-config - 0.6.0 + 0.7.0 Google Cloud Spanner BOM diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITQueryOptionsTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITQueryOptionsTest.java index bf944c37fa..c60e2ae889 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITQueryOptionsTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITQueryOptionsTest.java @@ -107,8 +107,7 @@ public void executeQuery() { @Test public void executeUpdate() { - // Query optimizer version is ignored for DML statements by the backend, but setting it does not - // cause an error. + // Optimizer version 1 should work. assertThat( client .readWriteTransaction() @@ -150,35 +149,38 @@ public Long run(TransactionContext transaction) throws Exception { })) .isEqualTo(1L); - // Version '100000' is an invalid value, but is ignored by the backend. - assertThat( - client - .readWriteTransaction() - .run( - new TransactionCallable() { - @Override - public Long run(TransactionContext transaction) throws Exception { - return transaction.executeUpdate( - Statement.newBuilder("INSERT INTO TEST (ID, NAME) VALUES (@id, @name)") - .bind("id") - .to(3L) - .bind("name") - .to("Three") - .withQueryOptions( - QueryOptions.newBuilder().setOptimizerVersion("10000").build()) - .build()); - } - })) - .isEqualTo(1L); + // Version '100000' is an invalid value and should cause an error. + try { + client + .readWriteTransaction() + .run( + new TransactionCallable() { + @Override + public Long run(TransactionContext transaction) throws Exception { + return transaction.executeUpdate( + Statement.newBuilder("INSERT INTO TEST (ID, NAME) VALUES (@id, @name)") + .bind("id") + .to(3L) + .bind("name") + .to("Three") + .withQueryOptions( + QueryOptions.newBuilder().setOptimizerVersion("100000").build()) + .build()); + } + }); + fail("missing expected exception"); + } catch (SpannerException e) { + assertThat(e.getErrorCode()).isEqualTo(ErrorCode.INVALID_ARGUMENT); + assertThat(e.getMessage()).contains("Query optimizer version: 100000 is not supported"); + } - // Verify that query options are ignored with Partitioned DML as well, and that all the above - // DML INSERT statements succeeded. + // Setting an optimizer version for PDML should also be allowed. assertThat( client.executePartitionedUpdate( Statement.newBuilder("UPDATE TEST SET NAME='updated' WHERE 1=1") .withQueryOptions(QueryOptions.newBuilder().setOptimizerVersion("1").build()) .build())) - .isEqualTo(3L); + .isEqualTo(2L); } @Test diff --git a/grpc-google-cloud-spanner-admin-database-v1/pom.xml b/grpc-google-cloud-spanner-admin-database-v1/pom.xml index 285dda4753..57c11eda19 100644 --- a/grpc-google-cloud-spanner-admin-database-v1/pom.xml +++ b/grpc-google-cloud-spanner-admin-database-v1/pom.xml @@ -37,6 +37,10 @@ com.google.guava guava + + com.google.auto.value + auto-value-annotations + com.google.api.grpc proto-google-iam-v1 @@ -63,6 +67,17 @@ + + + + org.apache.maven.plugins + maven-dependency-plugin + + com.google.auto.value:auto-value-annotations + + + + diff --git a/grpc-google-cloud-spanner-admin-instance-v1/pom.xml b/grpc-google-cloud-spanner-admin-instance-v1/pom.xml index 53d4e53b6c..93905246b7 100644 --- a/grpc-google-cloud-spanner-admin-instance-v1/pom.xml +++ b/grpc-google-cloud-spanner-admin-instance-v1/pom.xml @@ -37,6 +37,10 @@ com.google.guava guava + + com.google.auto.value + auto-value-annotations + com.google.api.grpc proto-google-iam-v1 @@ -63,6 +67,17 @@ + + + + org.apache.maven.plugins + maven-dependency-plugin + + com.google.auto.value:auto-value-annotations + + + + diff --git a/grpc-google-cloud-spanner-v1/pom.xml b/grpc-google-cloud-spanner-v1/pom.xml index 52a16aafe1..24fd7107d2 100644 --- a/grpc-google-cloud-spanner-v1/pom.xml +++ b/grpc-google-cloud-spanner-v1/pom.xml @@ -37,6 +37,10 @@ com.google.guava guava + + com.google.auto.value + auto-value-annotations + @@ -55,6 +59,17 @@ + + + + org.apache.maven.plugins + maven-dependency-plugin + + com.google.auto.value:auto-value-annotations + + + + diff --git a/pom.xml b/pom.xml index 12c7e57d94..5a9c991572 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 0.6.0 + 0.7.0 diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 6a26a75762..aeebf4a95e 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -14,7 +14,7 @@ com.google.cloud.samples shared-configuration - 1.0.17 + 1.0.18 @@ -29,7 +29,7 @@ com.google.cloud google-cloud-spanner - 1.55.0 + 1.55.1 diff --git a/samples/pom.xml b/samples/pom.xml index 495e101161..cee7fc1250 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -18,7 +18,7 @@ com.google.cloud.samples shared-configuration - 1.0.17 + 1.0.18 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 5b884a6d48..0922d93662 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -14,7 +14,7 @@ com.google.cloud.samples shared-configuration - 1.0.17 + 1.0.18 diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 915414d8a3..748b079cb2 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -14,7 +14,7 @@ com.google.cloud.samples shared-configuration - 1.0.17 + 1.0.18