calcite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Maryann Xue <>
Subject Dealing with two-level column structure tables
Date Tue, 12 Apr 2016 21:20:38 GMT

Phoenix has a two-level column structure for its tables, first level being
column families and second being columns under each family. We tried
modeling column families as of STRUCT types and columns as fields in their
corresponding STRUCT types. We have now passed parsing and validation, and
columns are represented as a RexFieldAccess (the column) from a RexInputRef
(the column family).
But when executing the query "select * from T", avatica could not handle
STRUCT type and threw an "not implemented" exception at I was hoping the parser could have flattened this
nested structure so that everything else would just work (both Avatica and
Phoenix). For example, a table having a structure like "VARCHAR K0,
RecordType(VARCHAR C0, VARCHAR C1) F1" can be flattened as "VARCHAR K0,
VARCHAR F1.C0, VARCHAR F1.C1". Does that sound a right direction to head to?

Otherwise I'm thinking would it be possible to implement column
families/columns as name aliases? Column families in Phoenix are rather
meant for column namespace than having a real nested structure (although
they make a serious difference in HBase), so it would be most desired that
they only exist for column resolving and validation.


  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message