local exchange (GATHER, SINGLE, [])
    remote exchange (GATHER, SINGLE, [])
        final aggregation over (custkey, name, orderdate, orderkey, totalprice)
            local exchange (GATHER, SINGLE, [])
                partial aggregation over (custkey, name, orderdate, orderkey, totalprice)
                    semijoin (PARTITIONED):
                        join (INNER, PARTITIONED):
                            remote exchange (REPARTITION, HASH, [orderkey_3])
                                scan lineitem
                            local exchange (GATHER, SINGLE, [])
                                remote exchange (REPARTITION, HASH, [orderkey])
                                    join (INNER, PARTITIONED):
                                        remote exchange (REPARTITION, HASH, [custkey_0])
                                            scan orders
                                        local exchange (GATHER, SINGLE, [])
                                            remote exchange (REPARTITION, HASH, [custkey])
                                                scan customer
                        local exchange (GATHER, SINGLE, [])
                            remote exchange (REPARTITION, HASH, [orderkey_6])
                                final aggregation over (orderkey_6)
                                    local exchange (GATHER, SINGLE, [])
                                        remote exchange (REPARTITION, HASH, [orderkey_6])
                                            partial aggregation over (orderkey_6)
                                                scan lineitem
