Hi guys , i have another question about this adapter. I have a json sample like this : [ { "field": "test", "properties": [ "a", "b", "c" ] } ]
JsonTable look like to convert Array<CHAR> to OTHER ColumType . the column "properties" is converted on '<JAVATYPE(CLASS JAVA.UTIL.ARRAYLIST)> when i check JsonEnumerator i can see this function code :*RelDataType type = typeFactory.createJavaType(jsonFieldMap.get(key).getClass());* *About WHERE / IN is it supposed to work? on JavaType(ArrayList) ? * if i try to make this query "SELECT * FROM TABLE_A WHERE properties=any('a') i will have alway an Exception : org.apache.calcite.sql.validate.SqlValidatorException: Values passed to IN operator must have compatible type *if its not supposed to work i guess i need to re-implement this one to convert *JAVA.UTIL.ARRAYLIST on SQL_ARRAY type right ? thank Le lun. 18 nov. 2019 à 19:15, Yanna elina <yannaelinasul...@gmail.com> a écrit : > Big Thank Guys !!! > > Even if this CSVAdapter is an "example" its still really usefull :) and > with this update it will be a good "out of box" tools usable in many > scenario/workflow > > > Yanna > > Le jeu. 14 nov. 2019 à 21:20, Andrei Sereda <and...@sereda.cc> a écrit : > >> > I see that this feature request relates to Source.java and Sources.java, >> which are in org.apache.calcite.util in core. >> I'm not planning to change Source.java it already exposes Reader / >> InputStream >> >> > If you add some capability, it is fine to add It to the CSV adapter >> example, but it is much more important that that capability exists in the >> file adapter. >> I will add to both. The general idea behind this change is that currently >> CSV / File Adapter(s) require inputs to be File(s) or URL(s) which forces >> users to create temporal resources manually (when their content is already >> in-memory). If input to CSV / File adapter(s) is generic Readable [1] / >> Reader [2] or InputStream it gives more flexibility to users. >> >> [1] https://docs.oracle.com/javase/7/docs/api/java/lang/Readable.html >> [2] https://docs.oracle.com/javase/7/docs/api/java/io/Reader.html >> >> >> On Thu, Nov 14, 2019 at 2:45 PM Julian Hyde <jh...@apache.org> wrote: >> >> > I see that this feature request relates to Source.java and Sources.java, >> > which are in org.apache.calcite.util in core. >> > >> > If you add some capability, it is fine to add It to the CSV adapter >> > example, but it is much more important that that capability exists in >> the >> > file adapter. >> > >> > Julian >> > >> > >> > > On Nov 14, 2019, at 11:36 AM, Andrei Sereda <and...@sereda.cc> wrote: >> > > >> > > I think the change is straightforward (will not add complexity). >> > > >> > > On Thu, Nov 14, 2019 at 1:24 PM Julian Hyde <jh...@apache.org> wrote: >> > > >> > >> Remember that CsvAdapter is in the “example” module. Keep it simple. >> > >> >> > >> The file adapter can also parse CSV files. >> > >> >> > >> Julian >> > >> >> > >> >> > >> >> > >>> On Nov 14, 2019, at 9:40 AM, Andrei Sereda <and...@sereda.cc> >> wrote: >> > >>> >> > >>> Hello, >> > >>> >> > >>> Source object already exposes Reader / InputStream API. Probably >> > >>> JsonEnumerator can be changed to use those methods. >> > >>> >> > >>> Do you mind creating a JIRA ticket ? I'll take a look. >> > >>> >> > >>> Thanks, >> > >>> Andrei. >> > >>> >> > >>> On Thu, Nov 14, 2019 at 7:45 AM Yanna elina < >> > yannaelinasul...@gmail.com> >> > >>> wrote: >> > >>> >> > >>>> Hi guys , >> > >>>> I saw in the code that this nice adapter makes it possible to make >> SQL >> > >>>> queries on the data JSON >> > >>>> >> > >>>> >> > >> >> > >> https://github.com/apache/calcite/tree/ab71c4cae5a5c3c7d979337a2d38ddaf271aa206/example/csv/src/main/java/org/apache/calcite/adapter/csv >> > >>>> >> > >>>> But it's limited on File / URL. >> > >>>> JsonTable constructor accepte only a Source object and this Source >> > >> object >> > >>>> can be construct only accross a File / URL. >> > >>>> >> > >>>> it could be nice to have the possibility to make this source from >> > >>>> ImputStream too . >> > >>>> >> > >>>> Creating a temp-file from an InputStream or String can be excesive. >> > >>>> >> > >>>> Thanks >> > >>>> >> > >> >> > >> >> > >> > >> >