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.

Reply via email to