Skip to content

Commit 3777539

Browse files
committed
Adding snippets for Spanner DatabaseAdminClient.
1 parent ce59d34 commit 3777539

1 file changed

Lines changed: 136 additions & 0 deletions

File tree

Lines changed: 136 additions & 0 deletions
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)