@@ -152,7 +152,8 @@ def add_index(instance_id, database_id):
152152 print ('Added the AlbumsByAlbumTitle index.' )
153153
154154
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' ):
156157 """Queries sample data from the database using SQL and an index.
157158
158159 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):
168169 ALTER TABLE Albums ADD COLUMN MarketingBudget INT64
169170
170171 """
172+ from google .cloud .proto .spanner .v1 import type_pb2
173+
171174 spanner_client = spanner .Client ()
172175 instance = spanner_client .instance (instance_id )
173176 database = instance .database (database_id )
174177
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+ }
175186 results = database .execute_sql (
176187 "SELECT AlbumId, AlbumTitle, MarketingBudget "
177188 "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 )
179191
180192 for row in results :
181193 print (
@@ -413,7 +425,12 @@ def read_only_transaction(instance_id, database_id):
413425 subparsers .add_parser (
414426 'read_only_transaction' , help = read_only_transaction .__doc__ )
415427 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' )
417434 subparsers .add_parser ('read_data_with_index' , help = insert_data .__doc__ )
418435 subparsers .add_parser ('add_storing_index' , help = add_storing_index .__doc__ )
419436 subparsers .add_parser (
@@ -442,7 +459,9 @@ def read_only_transaction(instance_id, database_id):
442459 elif args .command == 'add_index' :
443460 add_index (args .instance_id , args .database_id )
444461 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 )
446465 elif args .command == 'read_data_with_index' :
447466 read_data_with_index (args .instance_id , args .database_id )
448467 elif args .command == 'add_storing_index' :
0 commit comments