public static List<VirtualColumn> getAcidVirtualColumns(Table table) {
    if (isTransactionalTable(table)) {
      return Lists.newArrayList(VirtualColumn.ROWID);
    } else {
      if (isNonNativeAcidTable(table)) {
        return table.getStorageHandler().acidVirtualColumns();
      }
    }
    return Collections.emptyList();
  }
Returns the virtual columns needed for update queries. For ACID queries it is a single ROW__ID, for non-native
tables the list is provided by the {@link HiveStorageHandler#acidVirtualColumns()}.
@param table The table for which we run the query
@return The list of virtual columns used
ql/src/java/org/apache/hadoop/hive/ql/io/AcidUtils.java