*Hi Danny , * *From my side with your suggestion i have this error message : for MAP type : * *SELECT properties['fullyQualifiedDomainName'] FROM TABLE_TEST : *
Cannot apply 'ITEM' to arguments of type 'ITEM(<JAVATYPE(CLASS JAVA.UTIL.LINKEDHASHMAP)>, <CHAR(24)>)'. Supported form(s): <ARRAY>[<INTEGER>] <MAP>[<VALUE>] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) *and for LIST TYPE : * *SELECT MY_ARRAY[1] FROM TABLE_TEST :* Caused by: org.apache.calcite.sql.validate.SqlValidatorException: Cannot apply 'ITEM' to arguments of type 'ITEM(<JAVATYPE(CLASS JAVA.UTIL.ARRAYLIST)>, <INTEGER>)'. Supported form(s): <ARRAY>[<INTEGER>] Regard , Yanna Le mar. 26 nov. 2019 à 12:19, Steve Robert <contact.steverob...@gmail.com> a écrit : > Ok i got it , > > thank a lot Danny > > Le mar. 26 nov. 2019 à 01:53, Danny Chan <yuzhao....@gmail.com> a écrit : > > > Thanks, Steve ~ > > > > Calcite did support LIST type syntax, such as “INT ARRAY” or “INT > MULTISET > > ARRAY”, but we do not support MAP syntax yet, because it is not a SQL > > standard, so the MAP type would always parsed to other type. > > > > You can reference a ARRAY column item with syntax “column_name[_index]”, > > and MAP column value with syntax “column_name[‘key_name’]”, these syntax > > also works with “OTHER”/“ANY” data type. > > > > Best, > > Danny Chan > > 在 2019年11月25日 +0800 PM8:22,Steve Robert <contact.steverob...@gmail.com > > >,写道: > > > Hi , > > > > > > I saw an interesting exchange about the CSVAdapter > > > > > > I am also in a similar case where I want to be able to perform > predicate > > > filters from table > > > after conversion from JSON to JsonScannableTable . > > > > > > > > > the first dimension are correctly converted into the right type VARCHAR > > ect > > > but other dimension like LIST or MAP are converted to "OTHER"-type > > > it is therefore impossible to execute CONTAINS / IN OR ANY on column > > > transformed to OTHER-TYPE > > > > > > > > > I would like to know where it is the code best place to convert LIST > MAP > > > to a SQL type ARRAY_LIST and no OTHER > > > > > > I am new in calcite I have a little trouble understanding the type > > > definition workflow. I looked at the side of JSONEnumerator but it > seems > > > opaque. > > > > > > thank you in advance > > > > > > Steve > > >