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) {