|
24 | 24 | import com.google.cloud.spanner.DatabaseAdminClient;
|
25 | 25 | import com.google.cloud.spanner.DatabaseClient;
|
26 | 26 | import com.google.cloud.spanner.DatabaseId;
|
| 27 | +import com.google.cloud.spanner.DatabaseInfo; |
27 | 28 | // [START transaction_import]
|
28 | 29 | import com.google.cloud.spanner.Key;
|
29 | 30 | // [END transaction_import]
|
|
57 | 58 | // [END write_import]
|
58 | 59 | import java.util.Arrays;
|
59 | 60 | import java.util.List;
|
| 61 | +import com.google.cloud.WaitForOption; |
| 62 | +import java.util.concurrent.TimeUnit; |
60 | 63 |
|
61 | 64 | /**
|
62 | 65 | * Example code for using the Cloud Spanner API. This example demonstrates all the common
|
@@ -132,8 +135,15 @@ static void createDatabase(DatabaseAdminClient dbAdminClient, DatabaseId id) {
|
132 | 135 | + " AlbumTitle STRING(MAX)\n"
|
133 | 136 | + ") PRIMARY KEY (SingerId, AlbumId),\n"
|
134 | 137 | + " INTERLEAVE IN PARENT Singers ON DELETE CASCADE"));
|
135 |
| - Database db = op.waitFor().getResult(); |
136 |
| - System.out.println("Created database [" + db.getId() + "]"); |
| 138 | + op = op.waitFor(WaitForOption.timeout(2, TimeUnit.MINUTES)); |
| 139 | + Database db = op.getResult(); |
| 140 | + if (op.isSuccessful() && db.getState() == DatabaseInfo.State.READY) { |
| 141 | + System.out.println("Created database [" + db.getId() + "]"); |
| 142 | + } else { |
| 143 | + throw new RuntimeException(String.format( |
| 144 | + "Error creating database: {successful: %b, state: %s}", |
| 145 | + op.isSuccessful(), db.getState())); |
| 146 | + } |
137 | 147 | }
|
138 | 148 |
|
139 | 149 | // [START write]
|
@@ -198,10 +208,14 @@ static void read(DatabaseClient dbClient) {
|
198 | 208 |
|
199 | 209 | // [START add_marketing_budget]
|
200 | 210 | static void addMarketingBudget(DatabaseAdminClient adminClient, DatabaseId dbId) {
|
201 |
| - adminClient.updateDatabaseDdl(dbId.getInstanceId().getInstance(), |
| 211 | + Operation op = adminClient.updateDatabaseDdl( |
| 212 | + dbId.getInstanceId().getInstance(), |
202 | 213 | dbId.getDatabase(),
|
203 | 214 | Arrays.asList("ALTER TABLE Albums ADD COLUMN MarketingBudget INT64"),
|
204 | 215 | null).waitFor();
|
| 216 | + if (!op.isSuccessful()) { |
| 217 | + throw new RuntimeException("ALTER TABLE operation unsuccessful"); |
| 218 | + } |
205 | 219 | System.out.println("Added MarketingBudget column");
|
206 | 220 | }
|
207 | 221 | // [END add_marketing_budget]
|
|
0 commit comments