When a schema is defined, the key chunk columns and value chunk columns are sorted so that fixlen columns go first and varlen columns go second, so the sorted column order differs from the order of the user-defined columns.
We may need a way to keep original columns order, e.g. for SQL, where user expects "select * from" return columns in user-defined order in "create table" statement. It may be a simple relocation table which is a permutation of indices [0..n), so that an internal column order for user index n is relocationTbl[n]. Or maybe we could just store column user-defined order within the column object to use it in Calcite.
NB: the row assembler will still need to access the internal sorted order for proper row assembly.