TheNeuralBit commented on a change in pull request #12426: URL: https://github.com/apache/beam/pull/12426#discussion_r465180802
########## File path: model/fn-execution/src/main/resources/org/apache/beam/model/fnexecution/v1/standard_coders.yaml ########## @@ -384,3 +384,31 @@ nested: false examples: "\x02\x01\x02\x01": {f_bool: True, f_bytes: null} "\x02\x00\x00\x04ab\x00c": {f_bool: False, f_bytes: "ab\0c"} + +--- + +# Binary data generated with the python SDK: +# +# import typing +# import apache_beam as beam +# class Test(typing.NamedTuple): +# f_map: typing.Mapping[str,int] +# schema = beam.typehints.schemas.named_tuple_to_schema(Test) +# coder = beam.coders.row_coder.RowCoder(schema) +# print("payload = %s" % schema.SerializeToString()) +# examples = (Test(f_map={}), +# Test(f_map={"foo": 9001, "bar": 9223372036854775807}), +# Test(f_map={"everything": None, "is": None, "null!": None, "¯\_(ツ)_/¯": None})) +# for example in examples: +# print("example = %s" % coder.encode(example)) +coder: + urn: "beam:coder:row:v1" + # f_map: map<str, nullable int64> + payload: "\n\x15\n\x05f_map\x1a\x0c*\n\n\x02\x10\x07\x12\x04\x08\x01\x10\x04\x12$d8c8f969-14e6-457f-a8b5-62a1aec7f1cd" + # map ordering is non-deterministic + non_deterministic: True +nested: false Review comment: Robert was saying that the coders used to encode each attribute value are always nested. In the Java implementation we always call the version of `encode` which does not accept a context (as I understand it most implementations default to the nested encoding in this case): ``` https://github.com/apache/beam/blob/1bf60b99741ff4d0a8b88e93f5241379e1f3962f/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/RowCoderGenerator.java#L267-L272 ``` ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org