@@ -2540,6 +2540,29 @@ def read_then_write(transaction):
25402540 # [END spanner_transaction_timeout]
25412541
25422542
2543+ def set_statement_timeout (instance_id , database_id ):
2544+ """Executes a transaction with a statement timeout."""
2545+ # [START spanner_set_statement_timeout]
2546+ # instance_id = "your-spanner-instance"
2547+ # database_id = "your-spanner-db-id"
2548+ spanner_client = spanner .Client ()
2549+ instance = spanner_client .instance (instance_id )
2550+ database = instance .database (database_id )
2551+
2552+ def write (transaction ):
2553+ # Insert a record and configure the statement timeout to 60 seconds
2554+ row_ct = transaction .execute_update (
2555+ "INSERT INTO Singers (SingerId, FirstName, LastName) "
2556+ " VALUES (10, 'George', 'Washington')" ,
2557+ timeout = 60 ,
2558+ )
2559+ print ("{} record(s) inserted." .format (row_ct ))
2560+
2561+ database .run_in_transaction (write )
2562+
2563+ # [END spanner_set_statement_timeout]
2564+
2565+
25432566def set_request_tag (instance_id , database_id ):
25442567 """Executes a snapshot read with a request tag."""
25452568 # [START spanner_set_request_tag]
@@ -3651,6 +3674,7 @@ def add_split_points(instance_id, database_id):
36513674 subparsers .add_parser (
36523675 "set_transaction_timeout" , help = set_transaction_timeout .__doc__
36533676 )
3677+ subparsers .add_parser ("set_statement_timeout" , help = set_statement_timeout .__doc__ )
36543678 subparsers .add_parser (
36553679 "query_data_with_new_column" , help = query_data_with_new_column .__doc__
36563680 )
@@ -3819,6 +3843,8 @@ def add_split_points(instance_id, database_id):
38193843 set_max_commit_delay (args .instance_id , args .database_id )
38203844 elif args .command == "set_transaction_timeout" :
38213845 set_transaction_timeout (args .instance_id , args .database_id )
3846+ elif args .command == "set_statement_timeout" :
3847+ set_statement_timeout (args .instance_id , args .database_id )
38223848 elif args .command == "query_data_with_new_column" :
38233849 query_data_with_new_column (args .instance_id , args .database_id )
38243850 elif args .command == "read_write_transaction" :
0 commit comments