Skip to content

Commit ccdd592

Browse files
samples: add a sample for the max commit delay feature (#1097)
* Add a sample * Small addition. * Change sample to a transactional sample. * Comments * feat(spanner): update snippet tag position * fix test output --------- Co-authored-by: Sri Harsha CH <[email protected]> Co-authored-by: Sri Harsha CH <[email protected]>
1 parent f602cf8 commit ccdd592

File tree

2 files changed

+34
-1
lines changed

2 files changed

+34
-1
lines changed

samples/samples/snippets.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1527,6 +1527,29 @@ def insert_singers(transaction):
15271527
# [END spanner_get_commit_stats]
15281528

15291529

1530+
def set_max_commit_delay(instance_id, database_id):
1531+
"""Inserts sample data and sets a max commit delay."""
1532+
# [START spanner_set_max_commit_delay]
1533+
# instance_id = "your-spanner-instance"
1534+
# database_id = "your-spanner-db-id"
1535+
spanner_client = spanner.Client()
1536+
instance = spanner_client.instance(instance_id)
1537+
database = instance.database(database_id)
1538+
1539+
def insert_singers(transaction):
1540+
row_ct = transaction.execute_update(
1541+
"INSERT Singers (SingerId, FirstName, LastName) "
1542+
" VALUES (111, 'Grace', 'Bennis')"
1543+
)
1544+
1545+
print("{} record(s) inserted.".format(row_ct))
1546+
1547+
database.run_in_transaction(
1548+
insert_singers, max_commit_delay=datetime.timedelta(milliseconds=100)
1549+
)
1550+
# [END spanner_set_max_commit_delay]
1551+
1552+
15301553
def update_data_with_dml(instance_id, database_id):
15311554
"""Updates sample data from the database using a DML statement."""
15321555
# [START spanner_dml_standard_update]
@@ -3082,6 +3105,7 @@ def set_custom_timeout_and_retry(instance_id, database_id):
30823105
subparsers.add_parser("read_stale_data", help=read_stale_data.__doc__)
30833106
subparsers.add_parser("add_column", help=add_column.__doc__)
30843107
subparsers.add_parser("update_data", help=update_data.__doc__)
3108+
subparsers.add_parser("set_max_commit_delay", help=set_max_commit_delay.__doc__)
30853109
subparsers.add_parser(
30863110
"query_data_with_new_column", help=query_data_with_new_column.__doc__
30873111
)
@@ -3228,6 +3252,8 @@ def set_custom_timeout_and_retry(instance_id, database_id):
32283252
add_column(args.instance_id, args.database_id)
32293253
elif args.command == "update_data":
32303254
update_data(args.instance_id, args.database_id)
3255+
elif args.command == "set_max_commit_delay":
3256+
set_max_commit_delay(args.instance_id, args.database_id)
32313257
elif args.command == "query_data_with_new_column":
32323258
query_data_with_new_column(args.instance_id, args.database_id)
32333259
elif args.command == "read_write_transaction":

samples/samples/snippets_test.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -499,6 +499,13 @@ def test_log_commit_stats(capsys, instance_id, sample_database):
499499
assert "4 mutation(s) in transaction." in out
500500

501501

502+
@pytest.mark.dependency(name="set_max_commit_delay")
503+
def test_set_max_commit_delay(capsys, instance_id, sample_database):
504+
snippets.set_max_commit_delay(instance_id, sample_database.database_id)
505+
out, _ = capsys.readouterr()
506+
assert "1 record(s) inserted." in out
507+
508+
502509
@pytest.mark.dependency(depends=["insert_data"])
503510
def test_update_data_with_dml(capsys, instance_id, sample_database):
504511
snippets.update_data_with_dml(instance_id, sample_database.database_id)
@@ -588,7 +595,7 @@ def update_data_with_partitioned_dml(capsys, instance_id, sample_database):
588595
def test_delete_data_with_partitioned_dml(capsys, instance_id, sample_database):
589596
snippets.delete_data_with_partitioned_dml(instance_id, sample_database.database_id)
590597
out, _ = capsys.readouterr()
591-
assert "6 record(s) deleted" in out
598+
assert "7 record(s) deleted" in out
592599

593600

594601
@pytest.mark.dependency(depends=["add_column"])

0 commit comments

Comments
 (0)