You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by "Luke Cwik (JIRA)" <ji...@apache.org> on 2017/11/08 18:50:00 UTC

[jira] [Created] (BEAM-3160) Type based coder inference incorrectly assumes that a coder for one type is equivalent to every other coder for that type.

Luke Cwik created BEAM-3160:
-------------------------------

             Summary: Type based coder inference incorrectly assumes that a coder for one type is equivalent to every other coder for that type.
                 Key: BEAM-3160
                 URL: https://issues.apache.org/jira/browse/BEAM-3160
             Project: Beam
          Issue Type: Bug
          Components: sdk-java-core
            Reporter: Luke Cwik
             Fix For: 2.3.0


We should prevent coder inference from assuming that two coders for the same type are interchangeable.

Two Avro GenericRecord coders with different schemas are considered identical and an arbitrary one is returned by the Coder/Type inference system if the GenericRecord type appears multiple times.
e.g.
*KvCoder.of(AvroCoder.of(SchemaA), AvroCoder.of(SchemaB))* after coder inference for the type *KV<GenericRecord, GenericRecord>* will return *KvCoder.of(AvroCoder.of(SchemaX), AvroCoder.of(SchemaX))* where SchemaX is either SchemaA or SchemaB.

Code:
https://github.com/apache/beam/blob/v2.1.1/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/CoderRegistry.java#L420 and other Type -> Coder maps in the same file should prevent insertion if the type already exists.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)