Skip to content

Commit 18f4962

Browse files
feat: add write_mode property to BigQuery Storage Write API v1 (#360)
* feat: add write_mode support for BigQuery Storage Write API v1 Committer: @anahan PiperOrigin-RevId: 414771198 Source-Link: googleapis/googleapis@8a2398e Source-Link: googleapis/googleapis-gen@9df7ea3 Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiOWRmN2VhMzg2YjU5ZDVjYzM5N2EzOTI0OThkM2MxYTVlNWE2NzNjYiJ9 * 🦉 Updates from OwlBot See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
1 parent 9f9ad35 commit 18f4962

File tree

2 files changed

+24
-4
lines changed

2 files changed

+24
-4
lines changed

packages/google-cloud-bigquery-storage/google/cloud/bigquery_storage_v1/types/stream.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,8 @@ class WriteStream(proto.Message):
194194
generate data that's compatible with this schema to send in
195195
initial ``AppendRowsRequest``. The table schema could go out
196196
of date during the life time of the stream.
197+
write_mode (google.cloud.bigquery_storage_v1.types.WriteStream.WriteMode):
198+
Immutable. Mode of the stream.
197199
"""
198200

199201
class Type(proto.Enum):
@@ -203,11 +205,17 @@ class Type(proto.Enum):
203205
PENDING = 2
204206
BUFFERED = 3
205207

208+
class WriteMode(proto.Enum):
209+
r"""Mode enum of the stream."""
210+
WRITE_MODE_UNSPECIFIED = 0
211+
INSERT = 1
212+
206213
name = proto.Field(proto.STRING, number=1,)
207214
type_ = proto.Field(proto.ENUM, number=2, enum=Type,)
208215
create_time = proto.Field(proto.MESSAGE, number=3, message=timestamp_pb2.Timestamp,)
209216
commit_time = proto.Field(proto.MESSAGE, number=4, message=timestamp_pb2.Timestamp,)
210217
table_schema = proto.Field(proto.MESSAGE, number=5, message=gcbs_table.TableSchema,)
218+
write_mode = proto.Field(proto.ENUM, number=7, enum=WriteMode,)
211219

212220

213221
__all__ = tuple(sorted(__protobuf__.manifest))

packages/google-cloud-bigquery-storage/tests/unit/gapic/bigquery_storage_v1/test_big_query_write.py

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -504,7 +504,9 @@ def test_create_write_stream(
504504
) as call:
505505
# Designate an appropriate return value for the call.
506506
call.return_value = stream.WriteStream(
507-
name="name_value", type_=stream.WriteStream.Type.COMMITTED,
507+
name="name_value",
508+
type_=stream.WriteStream.Type.COMMITTED,
509+
write_mode=stream.WriteStream.WriteMode.INSERT,
508510
)
509511
response = client.create_write_stream(request)
510512

@@ -517,6 +519,7 @@ def test_create_write_stream(
517519
assert isinstance(response, stream.WriteStream)
518520
assert response.name == "name_value"
519521
assert response.type_ == stream.WriteStream.Type.COMMITTED
522+
assert response.write_mode == stream.WriteStream.WriteMode.INSERT
520523

521524

522525
def test_create_write_stream_from_dict():
@@ -559,7 +562,9 @@ async def test_create_write_stream_async(
559562
# Designate an appropriate return value for the call.
560563
call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
561564
stream.WriteStream(
562-
name="name_value", type_=stream.WriteStream.Type.COMMITTED,
565+
name="name_value",
566+
type_=stream.WriteStream.Type.COMMITTED,
567+
write_mode=stream.WriteStream.WriteMode.INSERT,
563568
)
564569
)
565570
response = await client.create_write_stream(request)
@@ -573,6 +578,7 @@ async def test_create_write_stream_async(
573578
assert isinstance(response, stream.WriteStream)
574579
assert response.name == "name_value"
575580
assert response.type_ == stream.WriteStream.Type.COMMITTED
581+
assert response.write_mode == stream.WriteStream.WriteMode.INSERT
576582

577583

578584
@pytest.mark.asyncio
@@ -805,7 +811,9 @@ def test_get_write_stream(
805811
with mock.patch.object(type(client.transport.get_write_stream), "__call__") as call:
806812
# Designate an appropriate return value for the call.
807813
call.return_value = stream.WriteStream(
808-
name="name_value", type_=stream.WriteStream.Type.COMMITTED,
814+
name="name_value",
815+
type_=stream.WriteStream.Type.COMMITTED,
816+
write_mode=stream.WriteStream.WriteMode.INSERT,
809817
)
810818
response = client.get_write_stream(request)
811819

@@ -818,6 +826,7 @@ def test_get_write_stream(
818826
assert isinstance(response, stream.WriteStream)
819827
assert response.name == "name_value"
820828
assert response.type_ == stream.WriteStream.Type.COMMITTED
829+
assert response.write_mode == stream.WriteStream.WriteMode.INSERT
821830

822831

823832
def test_get_write_stream_from_dict():
@@ -856,7 +865,9 @@ async def test_get_write_stream_async(
856865
# Designate an appropriate return value for the call.
857866
call.return_value = grpc_helpers_async.FakeUnaryUnaryCall(
858867
stream.WriteStream(
859-
name="name_value", type_=stream.WriteStream.Type.COMMITTED,
868+
name="name_value",
869+
type_=stream.WriteStream.Type.COMMITTED,
870+
write_mode=stream.WriteStream.WriteMode.INSERT,
860871
)
861872
)
862873
response = await client.get_write_stream(request)
@@ -870,6 +881,7 @@ async def test_get_write_stream_async(
870881
assert isinstance(response, stream.WriteStream)
871882
assert response.name == "name_value"
872883
assert response.type_ == stream.WriteStream.Type.COMMITTED
884+
assert response.write_mode == stream.WriteStream.WriteMode.INSERT
873885

874886

875887
@pytest.mark.asyncio

0 commit comments

Comments
 (0)