public ColumnHandle getMergeRowIdColumnHandle()

in src/main/java/org/apache/paimon/trino/TrinoMetadata.java [221:239]


    public ColumnHandle getMergeRowIdColumnHandle(
            ConnectorSession session, ConnectorTableHandle tableHandle) {
        TrinoTableHandle trinoTableHandle = (TrinoTableHandle) tableHandle;
        Table table = trinoTableHandle.table(catalog);
        if (!(table instanceof FileStoreTable)) {
            throw new IllegalArgumentException(table.getClass() + " is not supported");
        }
        FileStoreTable storeTable = (FileStoreTable) table;
        BucketMode bucketMode = storeTable.bucketMode();
        if (bucketMode != BucketMode.HASH_FIXED) {
            throw new IllegalArgumentException("Unsupported table bucket mode: " + bucketMode);
        }
        Set<String> pkSet = new HashSet<>(table.primaryKeys());
        DataField[] row =
                table.rowType().getFields().stream()
                        .filter(dataField -> pkSet.contains(dataField.name()))
                        .toArray(DataField[]::new);
        return TrinoColumnHandle.of(TRINO_ROW_ID_NAME, DataTypes.ROW(row));
    }