Skip to content

Commit 8cb77d9

Browse files
authored
fix(bigtable): populate Value type in _format_execute_query_view_params (#17547)
Ensures that string view parameters construct Value objects with both string_value and explicit string_type populated. Fixes issue where view parameters created Value objects missing the explicit type_ field.
1 parent 36255ad commit 8cb77d9

3 files changed

Lines changed: 5 additions & 1 deletion

File tree

packages/google-cloud-bigtable/google/cloud/bigtable/data/execute_query/_parameters_formatting.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ def _format_execute_query_view_params(
3939
raise TypeError(
4040
f"View parameter {key} must be a string, got {type(value).__name__}"
4141
)
42-
result_values[key] = Value(string_value=value)
42+
result_values[key] = _convert_value_to_pb_value_dict(value, SqlType.String())
4343

4444
return result_values
4545

packages/google-cloud-bigtable/tests/unit/data/_async/test_client.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3558,6 +3558,8 @@ async def test_execute_query_with_view_parameters(
35583558
request = execute_query_mock.call_args[0][0]
35593559
assert "user_id" in request.view_parameters
35603560
assert request.view_parameters["user_id"].string_value == "alice"
3561+
val_type = request.view_parameters["user_id"].type_
3562+
assert type(val_type).to_dict(val_type) == {"string_type": {}}
35613563

35623564
@CrossSync.pytest
35633565
async def test_execute_query_with_view_parameters_invalid_type(

packages/google-cloud-bigtable/tests/unit/data/_sync_autogen/test_client.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3019,6 +3019,8 @@ def test_execute_query_with_view_parameters(
30193019
request = execute_query_mock.call_args[0][0]
30203020
assert "user_id" in request.view_parameters
30213021
assert request.view_parameters["user_id"].string_value == "alice"
3022+
val_type = request.view_parameters["user_id"].type_
3023+
assert type(val_type).to_dict(val_type) == {"string_type": {}}
30223024

30233025
def test_execute_query_with_view_parameters_invalid_type(
30243026
self, client, execute_query_mock, prepare_mock

0 commit comments

Comments
 (0)