|
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