diff --git a/spanner/cloud-client/pom.xml b/spanner/cloud-client/pom.xml index 6f2a244ac8a..da1c33b395a 100644 --- a/spanner/cloud-client/pom.xml +++ b/spanner/cloud-client/pom.xml @@ -34,6 +34,7 @@ limitations under the License. 1.8 UTF-8 0.26.0 + 1.52.0 @@ -42,7 +43,7 @@ limitations under the License. com.google.cloud google-cloud-bom - 0.84.0-alpha + 0.122.4-alpha pom import @@ -51,34 +52,26 @@ limitations under the License. - com.google.cloud google-cloud-spanner - - - com.google.guava - guava-jdk5 - - - io.opencensus - opencensus-api - - - io.grpc - grpc-netty-shaded - - - io.grpc - grpc-core - - + ${spanner.version} + + + com.google.api.grpc + proto-google-cloud-spanner-admin-instance-v1 + ${spanner.version} - - com.google.guava - guava - 28.2-jre + com.google.api.grpc + proto-google-cloud-spanner-v1 + ${spanner.version} + + com.google.api.grpc + proto-google-cloud-spanner-admin-database-v1 + ${spanner.version} + + io.opencensus opencensus-api diff --git a/spanner/cloud-client/src/main/java/com/example/spanner/SpannerSample.java b/spanner/cloud-client/src/main/java/com/example/spanner/SpannerSample.java index 754e62ff2bc..2db5d649a25 100644 --- a/spanner/cloud-client/src/main/java/com/example/spanner/SpannerSample.java +++ b/spanner/cloud-client/src/main/java/com/example/spanner/SpannerSample.java @@ -45,6 +45,7 @@ import com.google.common.io.BaseEncoding; import com.google.spanner.admin.database.v1.CreateDatabaseMetadata; import com.google.spanner.admin.database.v1.UpdateDatabaseDdlMetadata; +import com.google.spanner.v1.ExecuteSqlRequest.QueryOptions; import java.sql.Timestamp; import java.time.Instant; import java.util.ArrayList; @@ -1433,6 +1434,45 @@ static void queryWithTimestampParameter(DatabaseClient dbClient) { } // [END spanner_query_with_timestamp_parameter] + // [START spanner_create_client_with_query_options] + static void clientWithQueryOptions(DatabaseId db) { + SpannerOptions options = + SpannerOptions.newBuilder() + .setDefaultQueryOptions( + db, QueryOptions.newBuilder().setOptimizerVersion("1").build()) + .build(); + Spanner spanner = options.getService(); + DatabaseClient dbClient = spanner.getDatabaseClient(db); + try (ResultSet resultSet = + dbClient + .singleUse() + .executeQuery(Statement.of("SELECT SingerId, AlbumId, AlbumTitle FROM Albums"))) { + while (resultSet.next()) { + System.out.printf( + "%d %d %s\n", resultSet.getLong(0), resultSet.getLong(1), resultSet.getString(2)); + } + } + } + // [END spanner_create_client_with_query_options] + + // [START spanner_query_with_query_options] + static void queryWithQueryOptions(DatabaseClient dbClient) { + try (ResultSet resultSet = + dbClient + .singleUse() + .executeQuery( + Statement + .newBuilder("SELECT SingerId, AlbumId, AlbumTitle FROM Albums") + .withQueryOptions(QueryOptions.newBuilder().setOptimizerVersion("1").build()) + .build())) { + while (resultSet.next()) { + System.out.printf( + "%d %d %s\n", resultSet.getLong(0), resultSet.getLong(1), resultSet.getString(2)); + } + } + } + // [END spanner_query_with_query_options] + static void run( DatabaseClient dbClient, DatabaseAdminClient dbAdminClient, @@ -1589,6 +1629,12 @@ static void run( case "querywithtimestampparameter": queryWithTimestampParameter(dbClient); break; + case "clientwithqueryoptions": + clientWithQueryOptions(database); + break; + case "querywithqueryoptions": + queryWithQueryOptions(dbClient); + break; default: printUsageAndExit(); } @@ -1649,6 +1695,8 @@ static void printUsageAndExit() { System.err.println(" SpannerExample querywithint my-instance example-db"); System.err.println(" SpannerExample querywithstring my-instance example-db"); System.err.println(" SpannerExample querywithtimestampparameter my-instance example-db"); + System.err.println(" SpannerExample clientwithqueryoptions my-instance example-db"); + System.err.println(" SpannerExample querywithqueryoptions my-instance example-db"); System.exit(1); } diff --git a/spanner/cloud-client/src/test/java/com/example/spanner/SpannerSampleIT.java b/spanner/cloud-client/src/test/java/com/example/spanner/SpannerSampleIT.java index b04caffd515..0bf458ee201 100644 --- a/spanner/cloud-client/src/test/java/com/example/spanner/SpannerSampleIT.java +++ b/spanner/cloud-client/src/test/java/com/example/spanner/SpannerSampleIT.java @@ -216,7 +216,7 @@ public void testSample() throws Exception { out = runSample("querywithbytes"); assertThat(out).contains("4 Venue 4"); - + out = runSample("querywithdate"); assertThat(out).contains("4 Venue 4 2018-09-02"); assertThat(out).contains("42 Venue 42 2018-10-01"); @@ -236,6 +236,11 @@ public void testSample() throws Exception { assertThat(out).contains("4 Venue 4"); assertThat(out).contains("19 Venue 19"); assertThat(out).contains("42 Venue 42"); + + out = runSample("clientwithqueryoptions"); + assertThat(out).contains("1 1 Total Junk"); + out = runSample("querywithqueryoptions"); + assertThat(out).contains("1 1 Total Junk"); } private String formatForTest(String name) {