Hi Danny,

Yes, I tried implementing the DataTypeFactory for the UDF using
TypeInformationRawType (which is deprecated BTW, and there's no support for
RawType in the conversion), didn't help.

I did manage to get the conversion working using
TableEnvironment.toAppendStream (I was previously directly calling
TypeConversions) but still remains the problem that Flink can't register
LEGACY types via the CREATE TABLE DDL

On Mon, Dec 28, 2020, 04:25 Danny Chan <[email protected]> wrote:

> > SQL parse failed. Encount
> What syntax did you use ?
>
> > TypeConversions.fromDataTypeToLegacyInfo cannot convert a plain RAW type
> back to TypeInformation.
>
> Did you try to construct type information by a new
> fresh TypeInformationRawType ?
>
> Yuval Itzchakov <[email protected]> 于2020年12月24日周四 下午7:24写道:
>
>> An expansion to my question:
>>
>> What I really want is for the UDF to return `RAW(io.circe.Json, ?)` type,
>> but I have to do a conversion between Table and DataStream, and
>> TypeConversions.fromDataTypeToLegacyInfo cannot convert a plain RAW type
>> back to TypeInformation.
>>
>> On Thu, Dec 24, 2020 at 12:59 PM Yuval Itzchakov <[email protected]>
>> wrote:
>>
>>> Hi,
>>>
>>> I have a UDF which returns a type of MAP<STRING, LEGACY('RAW',
>>> 'ANY<io.circe.Json>')>. When I try to register this type with Flink via the
>>> CREATE TABLE DDL, I encounter an exception:
>>>
>>> - SQL parse failed. Encountered "(" at line 2, column 256.
>>> Was expecting one of:
>>>     "NOT" ...
>>>     "NULL" ...
>>>     ">" ...
>>>     "MULTISET" ...
>>>     "ARRAY" ...
>>>     "." ...
>>>
>>> Which looks like the planner doesn't like the round brackets on the
>>> LEGACY type. What is the correct way to register the table with this type
>>> with Flink?
>>> --
>>> Best Regards,
>>> Yuval Itzchakov.
>>>
>>
>>
>> --
>> Best Regards,
>> Yuval Itzchakov.
>>
>

Reply via email to