@@ -2539,6 +2539,28 @@ def read_then_write(transaction):
25392539
25402540 # [END spanner_transaction_timeout]
25412541
2542+ def set_statement_timeout (instance_id , database_id ):
2543+ """Executes a transaction with a statement timeout."""
2544+ # [START spanner_set_statement_timeout]
2545+ # instance_id = "your-spanner-instance"
2546+ # database_id = "your-spanner-db-id"
2547+ spanner_client = spanner .Client ()
2548+ instance = spanner_client .instance (instance_id )
2549+ database = instance .database (database_id )
2550+
2551+ def write (transaction ):
2552+ # Insert a record and configure the statement timeout to 60 seconds
2553+ row_ct = transaction .execute_update (
2554+ "INSERT INTO Singers (SingerId, FirstName, LastName) "
2555+ " VALUES (10, 'George', 'Washington')" ,
2556+ timeout = 60
2557+ )
2558+ print ("{} record(s) inserted." .format (row_ct ))
2559+
2560+ database .run_in_transaction (write )
2561+
2562+ # [END spanner_set_statement_timeout]
2563+
25422564
25432565def set_request_tag (instance_id , database_id ):
25442566 """Executes a snapshot read with a request tag."""
@@ -3651,6 +3673,9 @@ def add_split_points(instance_id, database_id):
36513673 subparsers .add_parser (
36523674 "set_transaction_timeout" , help = set_transaction_timeout .__doc__
36533675 )
3676+ subparsers .add_parser (
3677+ "set_statement_timeout" , help = set_statement_timeout .__doc__
3678+ )
36543679 subparsers .add_parser (
36553680 "query_data_with_new_column" , help = query_data_with_new_column .__doc__
36563681 )
@@ -3819,6 +3844,8 @@ def add_split_points(instance_id, database_id):
38193844 set_max_commit_delay (args .instance_id , args .database_id )
38203845 elif args .command == "set_transaction_timeout" :
38213846 set_transaction_timeout (args .instance_id , args .database_id )
3847+ elif args .command == "set_statement_timeout" :
3848+ set_statement_timeout (args .instance_id , args .database_id )
38223849 elif args .command == "query_data_with_new_column" :
38233850 query_data_with_new_column (args .instance_id , args .database_id )
38243851 elif args .command == "read_write_transaction" :
0 commit comments