Hello,
I need to identify select * projection for a table with row-type
defined as map(varchar,
any). Example from elastic search
<https://github.com/apache/calcite/blob/master/elasticsearch/src/main/java/org/apache/calcite/adapter/elasticsearch/ElasticsearchTable.java#L307>
:
@Override public RelDataType getRowType(RelDataTypeFactory relDataTypeFactory) {
final RelDataType mapType = relDataTypeFactory.createMapType(
relDataTypeFactory.createSqlType(SqlTypeName.VARCHAR),
relDataTypeFactory.createTypeWithNullability(
relDataTypeFactory.createSqlType(SqlTypeName.ANY),
true));
return relDataTypeFactory.builder().add("_MAP", mapType).build();
}
In Project, I’m doing something like:
final boolean isSelectStar = "_MAP".equals(fieldName);
Is there a better way to check select * for map row types (perhaps
comparing the type itself) ?
For more context: PR-1065 <https://github.com/apache/calcite/pull/1065>
Thanks,
Andrei.