remote exchange (GATHER, SINGLE, [])
    local exchange (GATHER, UNKNOWN, [])
        remote exchange (REPARTITION, ROUND_ROBIN, [])
            final aggregation over (brand, size, type)
                local exchange (GATHER, SINGLE, [])
                    remote exchange (REPARTITION, HASH, [brand, size, type])
                        partial aggregation over (brand, size, type)
                            final aggregation over (brand, size, suppkey, type)
                                local exchange (GATHER, SINGLE, [])
                                    partial aggregation over (brand, size, suppkey, type)
                                        semijoin (PARTITIONED):
                                            remote exchange (REPARTITION, HASH, [suppkey])
                                                join (INNER, PARTITIONED):
                                                    remote exchange (REPARTITION, HASH, [partkey])
                                                        dynamic filter (partkey::EQUAL)
                                                            scan partsupp
                                                    local exchange (GATHER, SINGLE, [])
                                                        remote exchange (REPARTITION, HASH, [partkey_0])
                                                            scan part
                                            local exchange (GATHER, SINGLE, [])
                                                remote exchange (REPARTITION, HASH, [suppkey_5])
                                                    scan supplier
