@@ -152,7 +152,8 @@ def add_index(instance_id, database_id):
152
152
print ('Added the AlbumsByAlbumTitle index.' )
153
153
154
154
155
- def query_data_with_index (instance_id , database_id ):
155
+ def query_data_with_index (
156
+ instance_id , database_id , start_title = 'Aardvark' , end_title = 'Goo' ):
156
157
"""Queries sample data from the database using SQL and an index.
157
158
158
159
The index must exist before running this sample. You can add the index
@@ -168,14 +169,25 @@ def query_data_with_index(instance_id, database_id):
168
169
ALTER TABLE Albums ADD COLUMN MarketingBudget INT64
169
170
170
171
"""
172
+ from google .cloud .proto .spanner .v1 import type_pb2
173
+
171
174
spanner_client = spanner .Client ()
172
175
instance = spanner_client .instance (instance_id )
173
176
database = instance .database (database_id )
174
177
178
+ params = {
179
+ 'start_title' : start_title ,
180
+ 'end_title' : end_title
181
+ }
182
+ param_types = {
183
+ 'start_title' : type_pb2 .Type (code = type_pb2 .STRING ),
184
+ 'end_title' : type_pb2 .Type (code = type_pb2 .STRING )
185
+ }
175
186
results = database .execute_sql (
176
187
"SELECT AlbumId, AlbumTitle, MarketingBudget "
177
188
"FROM Albums@{FORCE_INDEX=AlbumsByAlbumTitle} "
178
- "WHERE AlbumTitle >= 'Ardvark' AND AlbumTitle < 'Goo'" )
189
+ "WHERE AlbumTitle >= @start_title AND AlbumTitle < @end_title" ,
190
+ params = params , param_types = param_types )
179
191
180
192
for row in results :
181
193
print (
@@ -413,7 +425,12 @@ def read_only_transaction(instance_id, database_id):
413
425
subparsers .add_parser (
414
426
'read_only_transaction' , help = read_only_transaction .__doc__ )
415
427
subparsers .add_parser ('add_index' , help = add_index .__doc__ )
416
- subparsers .add_parser ('query_data_with_index' , help = insert_data .__doc__ )
428
+ query_data_with_index_parser = subparsers .add_parser (
429
+ 'query_data_with_index' , help = query_data_with_index .__doc__ )
430
+ query_data_with_index_parser .add_argument (
431
+ 'start_title' , default = 'Aardvark' )
432
+ query_data_with_index_parser .add_argument (
433
+ 'end_title' , default = 'Goo' )
417
434
subparsers .add_parser ('read_data_with_index' , help = insert_data .__doc__ )
418
435
subparsers .add_parser ('add_storing_index' , help = add_storing_index .__doc__ )
419
436
subparsers .add_parser (
@@ -442,7 +459,9 @@ def read_only_transaction(instance_id, database_id):
442
459
elif args .command == 'add_index' :
443
460
add_index (args .instance_id , args .database_id )
444
461
elif args .command == 'query_data_with_index' :
445
- query_data_with_index (args .instance_id , args .database_id )
462
+ query_data_with_index (
463
+ args .instance_id , args .database_id ,
464
+ args .start_title , args .end_title )
446
465
elif args .command == 'read_data_with_index' :
447
466
read_data_with_index (args .instance_id , args .database_id )
448
467
elif args .command == 'add_storing_index' :
0 commit comments