Just thinking out loud here, there might be a related-but-not-quite
ambiguity or bug with primitive type names!

{
  "type" : "record",
  "name" : "int",
  "namespace" : "mynamespace",
  "fields" : [
     { "name" : "value", "type" : "long" },
     { "name" : "next", "type" : [ "null", "mynamespace.int" ]
  } ]
}

This is a valid linked list when you parse it with the Java SDK (the
record has a namespace).  If you get the JSON representation, it
becomes:

{
  "type" : "record",
  "name" : "int",
  "namespace" : "mynamespace",
  "fields" : [
     { "name" : "value", "type" : "long" },
     { "name" : "next", "type" : [ "null", "int" ]
  } ]
}

Which is no longer a linked list.  Fun!

In the meantime, I created
https://issues.apache.org/jira/browse/FLINK-25962 to try and make a
fix there.

Best regards, Ryan



On Fri, Feb 4, 2022 at 6:27 PM Oscar Westra van Holthe - Kind
<[email protected]> wrote:
>
> On fr 4 feb. 2022 15:00, Ryan Skraba <[email protected]> wrote:
>
> > [...] I'm not quite sure that there *is* any ambiguity with
> > the examples.  A JSON object {"type": "record"} without any other
> > attributes can only be valid if we look at it as a type reference (not
> > a new RECORD type).  Are we allowed to add arbitrary JSON properties
> > to a type reference?
> >
>
> No: that would either change the named type, or create a copy with changes
> (and redefining a named type differently is not allowed).
>
>
> Kind regards,
> Oscar
>
> --
> Oscar Westra van Holthe - Kind <[email protected]>
>
> >

Reply via email to