Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion spanner/cloud-client/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ limitations under the License.
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-bom</artifactId>
<version>0.66.0-alpha</version>
<version>0.70.0-alpha</version>
<type>pom</type>
<scope>import</scope>
</dependency>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,17 +19,19 @@
import static com.google.cloud.spanner.TransactionRunner.TransactionCallable;
import static com.google.cloud.spanner.Type.StructField;

import com.google.api.gax.longrunning.OperationFuture;
import com.google.cloud.spanner.Database;
import com.google.cloud.spanner.DatabaseAdminClient;
import com.google.cloud.spanner.DatabaseClient;
import com.google.cloud.spanner.DatabaseId;
import com.google.cloud.spanner.Key;
import com.google.cloud.spanner.KeySet;
import com.google.cloud.spanner.Mutation;
import com.google.cloud.spanner.Operation;
import com.google.cloud.spanner.ReadOnlyTransaction;
import com.google.cloud.spanner.ResultSet;
import com.google.cloud.spanner.Spanner;
import com.google.cloud.spanner.SpannerException;
import com.google.cloud.spanner.SpannerExceptionFactory;
import com.google.cloud.spanner.SpannerOptions;
import com.google.cloud.spanner.Statement;
import com.google.cloud.spanner.Struct;
Expand All @@ -42,6 +44,7 @@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;

/**
Expand Down Expand Up @@ -132,7 +135,7 @@ static class Performance {

// [START spanner_create_database]
static void createDatabase(DatabaseAdminClient dbAdminClient, DatabaseId id) {
Operation<Database, CreateDatabaseMetadata> op =
OperationFuture<Database, CreateDatabaseMetadata> op =
dbAdminClient.createDatabase(
id.getInstanceId().getInstance(),
id.getDatabase(),
Expand All @@ -149,14 +152,20 @@ static void createDatabase(DatabaseAdminClient dbAdminClient, DatabaseId id) {
+ " AlbumTitle STRING(MAX)\n"
+ ") PRIMARY KEY (SingerId, AlbumId),\n"
+ " INTERLEAVE IN PARENT Singers ON DELETE CASCADE"));
Database db = op.waitFor().getResult();
System.out.println("Created database [" + db.getId() + "]");
try {
Database db = op.get();
System.out.println("Created database [" + db.getId() + "]");
} catch (ExecutionException e) {
throw (SpannerException) e.getCause();
} catch (InterruptedException e) {
throw SpannerExceptionFactory.propagateInterrupt(e);
}
}
// [END spanner_create_database]

// [START spanner_create_table_with_timestamp_column]
static void createTableWithTimestamp(DatabaseAdminClient dbAdminClient, DatabaseId id) {
Operation<Void, UpdateDatabaseDdlMetadata> op =
OperationFuture<Void, UpdateDatabaseDdlMetadata> op =
dbAdminClient.updateDatabaseDdl(
id.getInstanceId().getInstance(),
id.getDatabase(),
Expand All @@ -170,8 +179,14 @@ static void createTableWithTimestamp(DatabaseAdminClient dbAdminClient, Database
+ ") PRIMARY KEY (SingerId, VenueId, EventDate),\n"
+ " INTERLEAVE IN PARENT Singers ON DELETE CASCADE"),
null);
op.waitFor().getResult();
System.out.println("Created Performances table in database: [" + id + "]");
try {
op.get();
System.out.println("Created Performances table in database: [" + id + "]");
} catch (ExecutionException e) {
throw (SpannerException) e.getCause();
} catch (InterruptedException e) {
throw SpannerExceptionFactory.propagateInterrupt(e);
}
}
// [END spanner_create_table_with_timestamp_column]

Expand Down Expand Up @@ -260,14 +275,21 @@ static void read(DatabaseClient dbClient) {

// [START spanner_add_column]
static void addMarketingBudget(DatabaseAdminClient adminClient, DatabaseId dbId) {
adminClient
.updateDatabaseDdl(
dbId.getInstanceId().getInstance(),
dbId.getDatabase(),
Arrays.asList("ALTER TABLE Albums ADD COLUMN MarketingBudget INT64"),
null)
.waitFor();
System.out.println("Added MarketingBudget column");
OperationFuture<Void, UpdateDatabaseDdlMetadata> op =
adminClient
.updateDatabaseDdl(
dbId.getInstanceId().getInstance(),
dbId.getDatabase(),
Arrays.asList("ALTER TABLE Albums ADD COLUMN MarketingBudget INT64"),
null);
try {
op.get();
System.out.println("Added MarketingBudget column");
} catch (ExecutionException e) {
throw (SpannerException) e.getCause();
} catch (InterruptedException e) {
throw SpannerExceptionFactory.propagateInterrupt(e);
}
}
// [END spanner_add_column]

Expand Down Expand Up @@ -371,14 +393,21 @@ static void queryMarketingBudget(DatabaseClient dbClient) {

// [START spanner_create_index]
static void addIndex(DatabaseAdminClient adminClient, DatabaseId dbId) {
adminClient
.updateDatabaseDdl(
dbId.getInstanceId().getInstance(),
dbId.getDatabase(),
Arrays.asList("CREATE INDEX AlbumsByAlbumTitle ON Albums(AlbumTitle)"),
null)
.waitFor();
System.out.println("Added AlbumsByAlbumTitle index");
OperationFuture<Void, UpdateDatabaseDdlMetadata> op =
adminClient
.updateDatabaseDdl(
dbId.getInstanceId().getInstance(),
dbId.getDatabase(),
Arrays.asList("CREATE INDEX AlbumsByAlbumTitle ON Albums(AlbumTitle)"),
null);
try {
op.get();
System.out.println("Added AlbumsByAlbumTitle index");
} catch (ExecutionException e) {
throw (SpannerException) e.getCause();
} catch (InterruptedException e) {
throw SpannerExceptionFactory.propagateInterrupt(e);
}
}
// [END spanner_create_index]

Expand Down Expand Up @@ -431,15 +460,23 @@ static void readUsingIndex(DatabaseClient dbClient) {

// [START spanner_create_storing_index]
static void addStoringIndex(DatabaseAdminClient adminClient, DatabaseId dbId) {
adminClient
.updateDatabaseDdl(
dbId.getInstanceId().getInstance(),
dbId.getDatabase(),
Arrays.asList(
"CREATE INDEX AlbumsByAlbumTitle2 ON Albums(AlbumTitle) STORING (MarketingBudget)"),
null)
.waitFor();
System.out.println("Added AlbumsByAlbumTitle2 index");
OperationFuture<Void, UpdateDatabaseDdlMetadata> op =
adminClient
.updateDatabaseDdl(
dbId.getInstanceId().getInstance(),
dbId.getDatabase(),
Arrays.asList(
"CREATE INDEX AlbumsByAlbumTitle2 ON Albums(AlbumTitle) "
+ "STORING (MarketingBudget)"),
null);
try {
op.get();
System.out.println("Added AlbumsByAlbumTitle2 index");
} catch (ExecutionException e) {
throw (SpannerException) e.getCause();
} catch (InterruptedException e) {
throw SpannerExceptionFactory.propagateInterrupt(e);
}
}
// [END spanner_create_storing_index]

Expand Down Expand Up @@ -509,16 +546,23 @@ static void readStaleData(DatabaseClient dbClient) {

// [START spanner_add_timestamp_column]
static void addCommitTimestamp(DatabaseAdminClient adminClient, DatabaseId dbId) {
adminClient
.updateDatabaseDdl(
dbId.getInstanceId().getInstance(),
dbId.getDatabase(),
Arrays.asList(
"ALTER TABLE Albums ADD COLUMN LastUpdateTime TIMESTAMP "
+ "OPTIONS (allow_commit_timestamp=true)"),
null)
.waitFor();
System.out.println("Added LastUpdateTime as a commit timestamp column in Albums table.");
OperationFuture<Void, UpdateDatabaseDdlMetadata> op =
adminClient
.updateDatabaseDdl(
dbId.getInstanceId().getInstance(),
dbId.getDatabase(),
Arrays.asList(
"ALTER TABLE Albums ADD COLUMN LastUpdateTime TIMESTAMP "
+ "OPTIONS (allow_commit_timestamp=true)"),
null);
try {
op.get();
System.out.println("Added LastUpdateTime as a commit timestamp column in Albums table.");
} catch (ExecutionException e) {
throw (SpannerException) e.getCause();
} catch (InterruptedException e) {
throw SpannerExceptionFactory.propagateInterrupt(e);
}
}
// [END spanner_add_timestamp_column]

Expand Down Expand Up @@ -605,8 +649,8 @@ static void queryPerformancesTable(DatabaseClient dbClient) {
.singleUse()
.executeQuery(
Statement.of(
"SELECT SingerId, VenueId, EventDate, Revenue, LastUpdateTime FROM Performances"
+ " ORDER BY LastUpdateTime DESC"));
"SELECT SingerId, VenueId, EventDate, Revenue, LastUpdateTime "
+ " FROM Performances ORDER BY LastUpdateTime DESC"));
while (resultSet.next()) {
System.out.printf(
"%d %d %s %s %s\n",
Expand Down