Current column mapping support requires key column to be first in Hive table (and implicit rather than explicit in column mapping). We should allow it to be specified explicitly at any position within column mapping, e.g. with syntax :key to distinguish it from normal columns/families.
Together with this, allow :timestamp column to be mapped. For writes, this would allow timestamp to be explicitly provided by query (although we may want to prevent this in some cases; see for example HIVE-1223 and HIVE-1225). For reads, this would allow timestamp to be fetched, and filters on timestamp could be used to find particular row versions. (If no filter is supplied, should we return all row versions or only the default latest version? The semantics need to be well-defined here.)