local exchange (GATHER, SINGLE, [])
    remote exchange (GATHER, SINGLE, [])
        join (INNER, PARTITIONED):
            join (INNER, PARTITIONED):
                join (INNER, PARTITIONED):
                    local exchange (REPARTITION, ROUND_ROBIN, [])
                        remote exchange (REPARTITION, HASH, ["c_customer_id"])
                            final hashaggregation over (c_birth_country, c_customer_id, c_email_address, c_first_name, c_last_name, c_login, c_preferred_cust_flag, d_year)
                                local exchange (GATHER, SINGLE, [])
                                    remote exchange (REPARTITION, HASH, ["c_birth_country", "c_customer_id", "c_email_address", "c_first_name", "c_last_name", "c_login", "c_preferred_cust_flag", "d_year"])
                                        partial hashaggregation over (c_birth_country, c_customer_id, c_email_address, c_first_name, c_last_name, c_login, c_preferred_cust_flag, d_year)
                                            join (INNER, PARTITIONED):
                                                remote exchange (REPARTITION, HASH, ["ss_customer_sk"])
                                                    join (INNER, REPLICATED):
                                                        scan store_sales
                                                        local exchange (GATHER, SINGLE, [])
                                                            remote exchange (REPLICATE, BROADCAST, [])
                                                                scan date_dim
                                                local exchange (GATHER, SINGLE, [])
                                                    remote exchange (REPARTITION, HASH, ["c_customer_sk"])
                                                        scan customer
                        remote exchange (REPARTITION, HASH, ["c_customer_id_19"])
                            single hashaggregation over (c_birth_country_32, c_customer_id_19, c_email_address_34, c_first_name_26, c_last_name_27, c_login_33, c_preferred_cust_flag_28, d_year_42)
                                join (INNER, REPLICATED):
                                    join (INNER, REPLICATED):
                                        values (0 rows)
                                        values (0 rows)
                                    values (0 rows)
                    local exchange (GATHER, SINGLE, [])
                        remote exchange (REPARTITION, HASH, ["c_customer_id_123"])
                            final hashaggregation over (c_birth_country_136, c_customer_id_123, c_email_address_138, c_first_name_130, c_last_name_131, c_login_137, c_preferred_cust_flag_132, d_year_169)
                                local exchange (GATHER, SINGLE, [])
                                    remote exchange (REPARTITION, HASH, ["c_birth_country_136", "c_customer_id_123", "c_email_address_138", "c_first_name_130", "c_last_name_131", "c_login_137", "c_preferred_cust_flag_132", "d_year_169"])
                                        partial hashaggregation over (c_birth_country_136, c_customer_id_123, c_email_address_138, c_first_name_130, c_last_name_131, c_login_137, c_preferred_cust_flag_132, d_year_169)
                                            join (INNER, PARTITIONED):
                                                remote exchange (REPARTITION, HASH, ["ss_customer_sk_143"])
                                                    join (INNER, REPLICATED):
                                                        scan store_sales
                                                        local exchange (GATHER, SINGLE, [])
                                                            remote exchange (REPLICATE, BROADCAST, [])
                                                                scan date_dim
                                                local exchange (GATHER, SINGLE, [])
                                                    remote exchange (REPARTITION, HASH, ["c_customer_sk_122"])
                                                        scan customer
                        remote exchange (REPARTITION, HASH, ["c_customer_id_220"])
                            single hashaggregation over (c_birth_country_233, c_customer_id_220, c_email_address_235, c_first_name_227, c_last_name_228, c_login_234, c_preferred_cust_flag_229, d_year_277)
                                join (INNER, REPLICATED):
                                    join (INNER, REPLICATED):
                                        values (0 rows)
                                        values (0 rows)
                                    values (0 rows)
                local exchange (GATHER, SINGLE, [])
                    remote exchange (REPARTITION, HASH, ["c_customer_id_358"])
                        single hashaggregation over (c_birth_country_371, c_customer_id_358, c_email_address_373, c_first_name_365, c_last_name_366, c_login_372, c_preferred_cust_flag_367, d_year_404)
                            join (INNER, REPLICATED):
                                join (INNER, REPLICATED):
                                    values (0 rows)
                                    values (0 rows)
                                values (0 rows)
                    remote exchange (REPARTITION, HASH, ["c_customer_id_455"])
                        final hashaggregation over (c_birth_country_468, c_customer_id_455, c_email_address_470, c_first_name_462, c_last_name_463, c_login_469, c_preferred_cust_flag_464, d_year_512)
                            local exchange (GATHER, SINGLE, [])
                                remote exchange (REPARTITION, HASH, ["c_birth_country_468", "c_customer_id_455", "c_email_address_470", "c_first_name_462", "c_last_name_463", "c_login_469", "c_preferred_cust_flag_464", "d_year_512"])
                                    partial hashaggregation over (c_birth_country_468, c_customer_id_455, c_email_address_470, c_first_name_462, c_last_name_463, c_login_469, c_preferred_cust_flag_464, d_year_512)
                                        join (INNER, PARTITIONED):
                                            remote exchange (REPARTITION, HASH, ["ws_bill_customer_sk_476"])
                                                join (INNER, REPLICATED):
                                                    scan web_sales
                                                    local exchange (GATHER, SINGLE, [])
                                                        remote exchange (REPLICATE, BROADCAST, [])
                                                            scan date_dim
                                            local exchange (GATHER, SINGLE, [])
                                                remote exchange (REPARTITION, HASH, ["c_customer_sk_454"])
                                                    scan customer
            local exchange (GATHER, SINGLE, [])
                remote exchange (REPARTITION, HASH, ["c_customer_id_593"])
                    single hashaggregation over (c_birth_country_606, c_customer_id_593, c_email_address_608, c_first_name_600, c_last_name_601, c_login_607, c_preferred_cust_flag_602, d_year_639)
                        join (INNER, REPLICATED):
                            join (INNER, REPLICATED):
                                values (0 rows)
                                values (0 rows)
                            values (0 rows)
                remote exchange (REPARTITION, HASH, ["c_customer_id_690"])
                    final hashaggregation over (c_birth_country_703, c_customer_id_690, c_email_address_705, c_first_name_697, c_last_name_698, c_login_704, c_preferred_cust_flag_699, d_year_747)
                        local exchange (GATHER, SINGLE, [])
                            remote exchange (REPARTITION, HASH, ["c_birth_country_703", "c_customer_id_690", "c_email_address_705", "c_first_name_697", "c_last_name_698", "c_login_704", "c_preferred_cust_flag_699", "d_year_747"])
                                partial hashaggregation over (c_birth_country_703, c_customer_id_690, c_email_address_705, c_first_name_697, c_last_name_698, c_login_704, c_preferred_cust_flag_699, d_year_747)
                                    join (INNER, PARTITIONED):
                                        remote exchange (REPARTITION, HASH, ["ws_bill_customer_sk_711"])
                                            join (INNER, REPLICATED):
                                                scan web_sales
                                                local exchange (GATHER, SINGLE, [])
                                                    remote exchange (REPLICATE, BROADCAST, [])
                                                        scan date_dim
                                        local exchange (GATHER, SINGLE, [])
                                            remote exchange (REPARTITION, HASH, ["c_customer_sk_689"])
                                                scan customer
