Hi everyone,
Stephan pointed out that our naming of a generic/blackbox/opaque type in
SQL might be not intuitive for users. As the term ANY rather describes a
"super-class of all types" which is not the case in our type system. Our
current ANY type stands for a type that is just a blackbox within SQL,
serialized by some custom serializer, that can only be modified within UDFs.
I also gathered feedback from a training instructor and native English
speaker (David in CC) where I received the following:
"The way I’m thinking about this is this: there’s a concept here that
people have to become aware of, which is that Flink SQL is able to
operate generically on opaquely typed things — and folks need to be able
to connect what they see in code examples, etc. with this concept (which
they may be unaware of initially).
I feel like ANY misses the mark a little bit, but isn’t particularly
bad. I do worry that it may cause some confusion about its purpose and
power. I think OPAQUE would more clearly express what’s going on."
Also resources like Wikipedia [1] show that this terminology is common:
"a data type whose concrete data structure is not defined [...] its
values can only be manipulated by calling subroutines that have access
to the missing information"
I would therefore vote for refactoring the type name because it is not
used much yet.
Implications are:
- a new parser keyword "OPAQUE" and changed SQL parser
- changes for logical type root, logical type visitors, and their usages
What do you think?
Thanks,
Timo
[1] https://en.wikipedia.org/wiki/Opaque_data_type