This is an automated email from the ASF dual-hosted git repository.

kennknowles pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/beam.git


The following commit(s) were added to refs/heads/master by this push:
     new 8a6a3c1837d Add V2 standard coders for WindowedValue and Timer with 
ElementMetadata support (#40744)
8a6a3c1837d is described below

commit 8a6a3c1837df000d42bbef460d12ac04f2ee5f7d
Author: RadosÅ‚aw Stankiewicz <[email protected]>
AuthorDate: Fri Oct 23 19:41:04 2026 +0200

    Add V2 standard coders for WindowedValue and Timer with ElementMetadata 
support (#40744)
---
 .../beam/model/pipeline/v1/beam_runner_api.proto   | 42 ++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git 
a/model/pipeline/src/main/proto/org/apache/beam/model/pipeline/v1/beam_runner_api.proto
 
b/model/pipeline/src/main/proto/org/apache/beam/model/pipeline/v1/beam_runner_api.proto
index ceea6ee2c17..ec83504a060 100644
--- 
a/model/pipeline/src/main/proto/org/apache/beam/model/pipeline/v1/beam_runner_api.proto
+++ 
b/model/pipeline/src/main/proto/org/apache/beam/model/pipeline/v1/beam_runner_api.proto
@@ -1145,6 +1145,48 @@ message StandardCoders {
     //     encoded with it's corresponding coder.
     // Components: single coder for the value
     NULLABLE = 17 [(beam_urn) = "beam:coder:nullable:v1"];
+
+    // Encodes an element, the windows it is in, the timestamp of the element,
+    // the pane of the element, and optionally element metadata.
+    // The encoding is represented as:
+    // timestamp windows pane [metadata_length metadata] element
+    //
+    //   timestamp - Same as beam:coder:windowed_value:v1.
+    //   windows - Same as beam:coder:windowed_value:v1.
+    //   pane - Similar to beam:coder:windowed_value:v1, but the first byte
+    //     has the high bit 0x80 set if element metadata
+    //     is present.
+    //   metadata_length - A VarInt64 representing the length of the metadata
+    //     payload. Only present if the 0x80 bit is set on the first byte of
+    //     pane.
+    //   metadata - Serialized ElementMetadata proto bytes. Only present if the
+    //     0x80 bit is set on the first byte of pane.
+    //   element - Same as beam:coder:windowed_value:v1.
+    //
+    // Components: The element coder and the window coder, in that order.
+    WINDOWED_VALUE_V2 = 19 [(beam_urn) = "beam:coder:windowed_value:v2"];
+
+    // Encodes a timer containing a user key, a dynamic timer tag, a clear bit,
+    // a fire timestamp, a hold timestamp, the windows, the paneinfo, and
+    // optionally element metadata.
+    // The encoding is represented as:
+    //   user key - Same as beam:coder:timer:v1.
+    //   dynamic timer tag - Same as beam:coder:timer:v1.
+    //   windows - Same as beam:coder:timer:v1.
+    //   clear bit - Same as beam:coder:timer:v1.
+    //   If clear bit is false, it is followed by:
+    //     fire timestamp - Same as beam:coder:timer:v1.
+    //     hold timestamp - Same as beam:coder:timer:v1.
+    //     paneinfo - Similar to beam:coder:timer:v1, but the first byte has
+    //       the high bit 0x80 set if element metadata
+    //       is present.
+    //     metadata_length - A VarInt64 representing the length of the metadata
+    //       payload. Only present if the 0x80 bit is set on the first byte of
+    //       paneinfo.
+    //     metadata - Serialized ElementMetadata proto bytes. Only present if 
the
+    //       0x80 bit is set on the first byte of paneinfo.
+    // Components: Coder for the key and windows.
+    TIMER_V2 = 20 [(beam_urn) = "beam:coder:timer:v2"];
   }
 }
 

Reply via email to