Hi All,
i have create a table which handle stream of java hashmap pair with the
rowTime column. abstract table getRowType implementation given below.
@Override
public RelDataType getRowType(RelDataTypeFactory typeFactory) {
return typeFactory.builder().add("_MAP",
typeFactory.createMapType(
typeFactory.createSqlType(SqlTypeName.VARCHAR),
typeFactory.createTypeWithNullability(
typeFactory.createSqlType(SqlTypeName.ANY),
true))).add("rowTime",typeFactory.createSqlType(SqlTypeName.TIMESTAMP)).build();
}
idea is to use order by with floor(rowTime TO HOUR) .sample query as
follows.
select stream _MAP['name'],rowTime from event where cast(_MAP['age'] as INT
) >= 10 order by floor(event.rowTime TO HOUR)
it giving me error saying : 'Streaming ORDER BY must start with monotonic
expression'
i can't find any special handling in the sample csv stream implementation
as well.
following query works fine.
select stream _MAP['name'],rowTime from event
so that means rowTime identified properly as timestamp.
please help.
calcite version :
<dependency>
<groupId>org.apache.calcite</groupId>
<artifactId>calcite-core</artifactId>
<version>1.10.0</version>
</dependency>
thanks
nuwan