Skip to content

Commit 0704a5b

Browse files
committed
---
yaml --- r: 8381 b: refs/heads/snehashah-snippets c: 3777539 h: refs/heads/master i: 8379: b139504
1 parent fe8348d commit 0704a5b

2 files changed

Lines changed: 137 additions & 1 deletion

File tree

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ refs/tags/v0.18.0: 9d193c4c4b9d1c6f21515dd8e50836b9194ec9bb
5656
refs/tags/v0.19.0: e67b56e4d8dad5f9a7b38c9b2107c23c828f2ed5
5757
refs/tags/v0.20.0: 839f7fb7156535146aa1cb2c5aadd8d375d854e8
5858
refs/tags/v0.20.1: 370471f437f1f4f68a11e068df5cd6bf39edb1fa
59-
refs/heads/snehashah-snippets: ce59d34fa59c66add4c8370f1ca760f127a91b56
59+
refs/heads/snehashah-snippets: 3777539df63f4e023842ae3515bc96ec6fc49690
6060
refs/tags/v0.20.2: 5a53aa06f268b74dc192204f4f83e1a04d40f65d
6161
refs/tags/v0.20.3: 269025fdc14af0b68df214a4518be5379b2fe569
6262
refs/tags/v0.21.0: f88b200e00e41ba6262ee88a92abba38b1e2417e
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
/*
2+
* Copyright 2017 Google Inc. All Rights Reserved.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package com.google.cloud.examples.spanner.snippets;
18+
19+
import com.google.api.gax.paging.Page;
20+
import com.google.cloud.spanner.Options.ListOption;
21+
import com.google.spanner.admin.database.v1.CreateDatabaseMetadata;
22+
import com.google.spanner.admin.database.v1.UpdateDatabaseDdlMetadata;
23+
import java.util.List;
24+
import javax.annotation.Nullable;
25+
26+
/**
27+
* This class contains snippets for {@link DatabaseAdminClient} interface.
28+
*/
29+
public interface DatabaseAdminClientSnippets {
30+
31+
private final DatabaseAdminClient dbAdminClient;
32+
33+
public DatabaseAdminClientSnippets(DatabaseAdminClient dbAdminClient) {
34+
this.dbAdminClient = dbAdminClient;
35+
}
36+
37+
/**
38+
* Example to create database.
39+
*/
40+
// [TARGET createDatabase(String, String, Iterable)]
41+
// [VARIABLE my_instance_id]
42+
// [VARIABLE my_database_id]
43+
public void createDatabase(String instanceId, String databaseId) {
44+
// [START createDatabase]
45+
Operation<Database, CreateDatabaseMetadata> op = dbAdminClient
46+
.createDatabase(
47+
instanceId,
48+
databaseId,
49+
Arrays.asList(
50+
"CREATE TABLE Singers (\n"
51+
+ " SingerId INT64 NOT NULL,\n"
52+
+ " FirstName STRING(1024),\n"
53+
+ " LastName STRING(1024),\n"
54+
+ " SingerInfo BYTES(MAX)\n"
55+
+ ") PRIMARY KEY (SingerId)",
56+
"CREATE TABLE Albums (\n"
57+
+ " SingerId INT64 NOT NULL,\n"
58+
+ " AlbumId INT64 NOT NULL,\n"
59+
+ " AlbumTitle STRING(MAX)\n"
60+
+ ") PRIMARY KEY (SingerId, AlbumId),\n"
61+
+ " INTERLEAVE IN PARENT Singers ON DELETE CASCADE"));
62+
Database db = op.waitFor().getResult();
63+
System.out.println("Created database [" + db.getId() + "]");
64+
// [END createDatabase]
65+
}
66+
67+
/**
68+
* Example to getDatabase.
69+
*/
70+
// [TARGET getDatabase(String, String)]
71+
// [VARIABLE my_instance_id]
72+
// [VARIABLE my_database_id]
73+
public void getDatabase(String instanceId, String databaseId) {
74+
// [START getDatabase]
75+
Database db = dbClient.getDatabase(instanceId, databaseId);
76+
System.out.println("Fetched database [" + db.getId() + "]");
77+
// [END getDatabase]
78+
}
79+
80+
/**
81+
* Example to update the database DDL.
82+
*/
83+
// [TARGET updateDatabaseDdl(String, String, Iterable, String)]
84+
// [VARIABLE my_instance_id]
85+
// [VARIABLE my_database_id]
86+
public void updateDatabaseDdl(String instanceId, String databaseId) {
87+
// [START updateDatabaseDdl]
88+
dbAdminClient.updateDatabaseDdl(instanceId,
89+
databaseId,
90+
Arrays.asList("ALTER TABLE Albums ADD COLUMN MarketingBudget INT64"),
91+
null).waitFor();
92+
System.out.println("UpdateDatabaseDdl: added MarketingBudget column");
93+
// [END updateDatabaseDdl]
94+
}
95+
96+
/**
97+
* Example to drop a Cloud Spanner database.
98+
*/
99+
// [TARGET dropDatabase(String, String)]
100+
// [VARIABLE my_instance_id]
101+
// [VARIABLE my_database_id]
102+
public void dropDatabase(String instanceId, String databaseId) {
103+
// [START dropDatabase]
104+
dbAdminClient.dropDatabase(instanceId, databaseId);
105+
System.out.println("DropDatabase: " + databaseId);
106+
// [END dropDatabase]
107+
}
108+
109+
/**
110+
* Example to get the schema of a Cloud Spanner database.
111+
*/
112+
// [TARGET getDatabaseDdl(instanceId, databaseId)]
113+
// [VARIABLE my_instance_id]
114+
// [VARIABLE my_database_id]
115+
public void getDatabaseDdl(String instanceId, String databaseId) {
116+
// [START getDatabaseDdl]
117+
List<String> statementsInDb = dbAdminClient.getDatabaseDdl(instanceId, databaseId);
118+
// [END getDatabaseDdl]
119+
}
120+
121+
/**
122+
* Example to get the list of Cloud Spanner database in the given instance.
123+
*/
124+
// [TARGET listDatabases(String, ListOption)]
125+
// [VARIABLE my_instance_id]
126+
public void listDatabases(String instanceId) {
127+
// [START listDatabases]
128+
Page<Database> page = dbAdminClient.listDatabases(instanceId, Options.pageSize(1));
129+
while (page != null) {
130+
Database db = Iterables.getOnlyElement(page.getValues());
131+
System.out.println(db.getId().getDatabase());
132+
page = page.getNextPage();
133+
}
134+
// [END listDatabases]
135+
}
136+
}

0 commit comments

Comments
 (0)