Skip to content

Commit

Permalink
spanner: add query options versioning samples (#3093)
Browse files Browse the repository at this point in the history
* spanner: add query versioning samples

* update test assertions

* Fixed the region tags.

* Removed extra whitespace.

* update required spanner version

Co-authored-by: larkee <larkee@users.noreply.github.com>
Co-authored-by: skuruppu <skuruppu@google.com>
  • Loading branch information
3 people committed Mar 17, 2020
1 parent f4ff21a commit a9e0a0c
Show file tree
Hide file tree
Showing 3 changed files with 70 additions and 1 deletion.
2 changes: 1 addition & 1 deletion spanner/cloud-client/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
google-cloud-spanner==1.13.0
google-cloud-spanner==1.15.0
futures==3.3.0; python_version < "3"
53 changes: 53 additions & 0 deletions spanner/cloud-client/snippets.py
Original file line number Diff line number Diff line change
Expand Up @@ -1392,6 +1392,49 @@ def query_data_with_timestamp_parameter(instance_id, database_id):
# [END spanner_query_with_timestamp_parameter]


def query_data_with_query_options(instance_id, database_id):
"""Queries sample data using SQL with query options."""
# [START spanner_query_with_query_options]
# instance_id = "your-spanner-instance"
# database_id = "your-spanner-db-id"
spanner_client = spanner.Client()
instance = spanner_client.instance(instance_id)
database = instance.database(database_id)

with database.snapshot() as snapshot:
results = snapshot.execute_sql(
'SELECT VenueId, VenueName, LastUpdateTime FROM Venues',
query_options={'optimizer_version': '1'}
)

for row in results:
print(u"VenueId: {}, VenueName: {}, LastUpdateTime: {}".format(
*row))
# [END spanner_query_with_query_options]


def create_client_with_query_options(instance_id, database_id):
"""Create a client with query options."""
# [START spanner_create_client_with_query_options]
# instance_id = "your-spanner-instance"
# database_id = "your-spanner-db-id"
spanner_client = spanner.Client(
query_options={'optimizer_version': '1'}
)
instance = spanner_client.instance(instance_id)
database = instance.database(database_id)

with database.snapshot() as snapshot:
results = snapshot.execute_sql(
'SELECT VenueId, VenueName, LastUpdateTime FROM Venues'
)

for row in results:
print(u"VenueId: {}, VenueName: {}, LastUpdateTime: {}".format(
*row))
# [END spanner_create_client_with_query_options]


if __name__ == '__main__': # noqa: C901
parser = argparse.ArgumentParser(
description=__doc__,
Expand Down Expand Up @@ -1506,6 +1549,12 @@ def query_data_with_timestamp_parameter(instance_id, database_id):
subparsers.add_parser(
'query_data_with_timestamp_parameter',
help=query_data_with_timestamp_parameter.__doc__)
subparsers.add_parser(
'query_data_with_query_options',
help=query_data_with_query_options.__doc__)
subparsers.add_parser(
'create_client_with_query_options',
help=create_client_with_query_options.__doc__)

args = parser.parse_args()

Expand Down Expand Up @@ -1607,3 +1656,7 @@ def query_data_with_timestamp_parameter(instance_id, database_id):
query_data_with_string(args.instance_id, args.database_id)
elif args.command == 'query_data_with_timestamp_parameter':
query_data_with_timestamp_parameter(args.instance_id, args.database_id)
elif args.command == 'query_data_with_query_options':
query_data_with_query_options(args.instance_id, args.database_id)
elif args.command == 'create_client_with_query_options':
create_client_with_query_options(args.instance_id, args.database_id)
16 changes: 16 additions & 0 deletions spanner/cloud-client/snippets_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -358,3 +358,19 @@ def test_query_data_with_timestamp_parameter(capsys):
assert 'VenueId: 4, VenueName: Venue 4, LastUpdateTime:' in out
assert 'VenueId: 19, VenueName: Venue 19, LastUpdateTime:' in out
assert 'VenueId: 42, VenueName: Venue 42, LastUpdateTime:' in out


def test_query_data_with_query_options(capsys):
snippets.query_data_with_query_options(INSTANCE_ID, DATABASE_ID)
out, _ = capsys.readouterr()
assert 'VenueId: 4, VenueName: Venue 4, LastUpdateTime:' in out
assert 'VenueId: 19, VenueName: Venue 19, LastUpdateTime:' in out
assert 'VenueId: 42, VenueName: Venue 42, LastUpdateTime:' in out


def test_create_client_with_query_options(capsys):
snippets.create_client_with_query_options(INSTANCE_ID, DATABASE_ID)
out, _ = capsys.readouterr()
assert 'VenueId: 4, VenueName: Venue 4, LastUpdateTime:' in out
assert 'VenueId: 19, VenueName: Venue 19, LastUpdateTime:' in out
assert 'VenueId: 42, VenueName: Venue 42, LastUpdateTime:' in out

0 comments on commit a9e0a0c

Please sign in to comment.