Hi, I want to have a table with optional columns. It should be possible to select the columns by name, yet the columns should not appear in "select *".
I see the following options: 1) Add a record column with StructKind.PEEK_FIELDS_NO_EXPAND. It does not work for me since "select *" is expanded into all the column names (including the record), and Avatica just does not support structs. On top of that, I do not want to mess with those records during "table enumeration" (e.g. CALCITE-1890) 2) _extra magical column. It seems to be deprecated (it does not work, and it is quite similar to DynamicStar) 3) DynamicStar does not allow to specify different data types for the "generated" columns 4) "select ... from emp extend (ab int)". It is a lot less usable since selecting a column would require to alter the SQL in multiple places (select clause, from clause) 5) I've identified that there's a notion of org.apache.calcite.schema.Table#isRolledUp. It was added for a quite different purpose, however "rolled up" columns are hidden from "expandStar". However: I think isRolledUp implementation is somewhat broken. It does not work in case of nested schemas and/or tables with the same name in different schemas. The implementation of isRolledUp seems to be odd to me. It tries to "find a table somehow", however I think the more "proper" way would be to apply some Namespace / Scope magic. I'm a bit puzzled, and now I consider creating my own Calcite build that would just skip columns staring from "calcite.hidden:" Vladimir
