Hello, I would like to understand how exactly generic map type (_MAP) works with select * expression. Say I have the following query (on document database) :
-- first query: 2 projectionsselect * from elastic.zips order by _MAP['state'] -- second query: single projectionselect _MAP['state'] from elastic.zips order by _MAP['state'] For first query (select *) I’m getting 2 projections (inside ElasticsearchProject <https://github.com/apache/calcite/blob/master/elasticsearch/src/main/java/org/apache/calcite/adapter/elasticsearch/ElasticsearchProject.java#L67>) for some reason 0 = {RexInputRef@12207} "$0" index = 0 name = "$0" type = {MapSqlType@12211} "(VARCHAR, ANY) MAP" digest = "$0" 1 = {RexCall@12208} "ITEM($0, 'state')" op = {SqlItemOperator@12213} "ITEM" operands = {RegularImmutableList@12214} size = 2 type = {BasicSqlType@12215} "ANY" digest = "ITEM($0, 'state')" For second query and when using views there is no such issue. My question is how to correctly identify select * when rowType is map ( MapSqlType <https://github.com/apache/calcite/blob/master/core/src/main/java/org/apache/calcite/sql/type/MapSqlType.java>)? Thank you, Andrei.