final aggregation over ()
    local exchange (GATHER, SINGLE, [])
        remote exchange (GATHER, SINGLE, [])
            partial aggregation over ()
                join (INNER, PARTITIONED):
                    remote exchange (REPARTITION, HASH, [partkey])
                        dynamic filter (partkey::EQUAL)
                            scan lineitem
                    local exchange (GATHER, SINGLE, [])
                        remote exchange (REPARTITION, HASH, [partkey_0])
                            scan part
