I don’t think there is a way to do this. We need to add a feature to Calcite.
I saw you logged https://issues.apache.org/jira/browse/CALCITE-1088 and https://issues.apache.org/jira/browse/CALCITE-1089. Thanks for those. You set fixVersion = 1.7 but I’m going to clear that field. Julian > On Feb 13, 2016, at 12:11 PM, Jose Antonio Illescas del Olmo > <[email protected]> wrote: > > How can define a mongo json model to convert ObjectId to VARCHAR? > > cast(_MAP[\'_id\'] AS varchar(24)) AS id > > throws error: > >> select id from countries; > +--------------------------+ > | ID | > +--------------------------+ > java.lang.ClassCastException: org.bson.types.ObjectId cannot be cast to > java.lang.String > at > org.apache.calcite.avatica.util.AbstractCursor$StringAccessor.getString(AbstractCursor.java:727) > at > org.apache.calcite.avatica.AvaticaResultSet.getString(AvaticaResultSet.java:236) > at sqlline.Rows$Row.<init>(Rows.java:183) > at sqlline.IncrementalRows.hasNext(IncrementalRows.java:63) > at sqlline.TableOutputFormat.print(TableOutputFormat.java:33) > at sqlline.SqlLine.print(SqlLine.java:1652) > at sqlline.Commands.execute(Commands.java:833) > at sqlline.Commands.sql(Commands.java:732) > at sqlline.SqlLine.dispatch(SqlLine.java:807) > at sqlline.SqlLine.begin(SqlLine.java:681) > at sqlline.SqlLine.start(SqlLine.java:398) > at sqlline.SqlLine.main(SqlLine.java:292)
