local exchange (GATHER, SINGLE, [])
    remote exchange (GATHER, SINGLE, [])
        join (INNER, PARTITIONED):
            join (INNER, PARTITIONED):
                remote exchange (REPARTITION, HASH, ["c_customer_id_176"])
                    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)
                                    remote exchange (REPARTITION, HASH, ["c_customer_id_103"])
                                        single hashaggregation over (c_birth_country_116, c_customer_id_103, c_email_address_118, c_first_name_110, c_last_name_111, c_login_117, c_preferred_cust_flag_112, d_year_126)
                                            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_207"])
                                        final hashaggregation over (c_birth_country_220, c_customer_id_207, c_email_address_222, c_first_name_214, c_last_name_215, c_login_221, c_preferred_cust_flag_216, d_year_253)
                                            local exchange (GATHER, SINGLE, [])
                                                remote exchange (REPARTITION, HASH, ["c_birth_country_220", "c_customer_id_207", "c_email_address_222", "c_first_name_214", "c_last_name_215", "c_login_221", "c_preferred_cust_flag_216", "d_year_253"])
                                                    partial hashaggregation over (c_birth_country_220, c_customer_id_207, c_email_address_222, c_first_name_214, c_last_name_215, c_login_221, c_preferred_cust_flag_216, d_year_253)
                                                        join (INNER, PARTITIONED):
                                                            remote exchange (REPARTITION, HASH, ["ss_customer_sk_227"])
                                                                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_206"])
                                                                    scan customer
                                    remote exchange (REPARTITION, HASH, ["c_customer_id_304"])
                                        single hashaggregation over (c_birth_country_317, c_customer_id_304, c_email_address_319, c_first_name_311, c_last_name_312, c_login_318, c_preferred_cust_flag_313, d_year_361)
                                            join (INNER, REPLICATED):
                                                join (INNER, REPLICATED):
                                                    values (0 rows)
                                                    values (0 rows)
                                                values (0 rows)
                                    remote exchange (REPARTITION, HASH, ["c_customer_id_422"])
                                        single hashaggregation over (c_birth_country_435, c_customer_id_422, c_email_address_437, c_first_name_429, c_last_name_430, c_login_436, c_preferred_cust_flag_431, d_year_479)
                                            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_560"])
                                    single hashaggregation over (c_birth_country_573, c_customer_id_560, c_email_address_575, c_first_name_567, c_last_name_568, c_login_574, c_preferred_cust_flag_569, d_year_606)
                                        join (INNER, REPLICATED):
                                            join (INNER, REPLICATED):
                                                values (0 rows)
                                                values (0 rows)
                                            values (0 rows)
                                remote exchange (REPARTITION, HASH, ["c_customer_id_657"])
                                    final hashaggregation over (c_birth_country_670, c_customer_id_657, c_email_address_672, c_first_name_664, c_last_name_665, c_login_671, c_preferred_cust_flag_666, d_year_714)
                                        local exchange (GATHER, SINGLE, [])
                                            remote exchange (REPARTITION, HASH, ["c_birth_country_670", "c_customer_id_657", "c_email_address_672", "c_first_name_664", "c_last_name_665", "c_login_671", "c_preferred_cust_flag_666", "d_year_714"])
                                                partial hashaggregation over (c_birth_country_670, c_customer_id_657, c_email_address_672, c_first_name_664, c_last_name_665, c_login_671, c_preferred_cust_flag_666, d_year_714)
                                                    join (INNER, PARTITIONED):
                                                        remote exchange (REPARTITION, HASH, ["cs_bill_customer_sk_677"])
                                                            join (INNER, REPLICATED):
                                                                scan catalog_sales
                                                                local exchange (GATHER, SINGLE, [])
                                                                    remote exchange (REPLICATE, BROADCAST, [])
                                                                        scan date_dim
                                                        local exchange (GATHER, SINGLE, [])
                                                            remote exchange (REPARTITION, HASH, ["c_customer_sk_656"])
                                                                scan customer
                                remote exchange (REPARTITION, HASH, ["c_customer_id_775"])
                                    single hashaggregation over (c_birth_country_788, c_customer_id_775, c_email_address_790, c_first_name_782, c_last_name_783, c_login_789, c_preferred_cust_flag_784, d_year_832)
                                        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_913"])
                                single hashaggregation over (c_birth_country_926, c_customer_id_913, c_email_address_928, c_first_name_920, c_last_name_921, c_login_927, c_preferred_cust_flag_922, d_year_959)
                                    join (INNER, REPLICATED):
                                        join (INNER, REPLICATED):
                                            values (0 rows)
                                            values (0 rows)
                                        values (0 rows)
                            remote exchange (REPARTITION, HASH, ["c_customer_id_1010"])
                                final hashaggregation over (c_birth_country_1023, c_customer_id_1010, c_email_address_1025, c_first_name_1017, c_last_name_1018, c_login_1024, c_preferred_cust_flag_1019, d_year_1067)
                                    local exchange (GATHER, SINGLE, [])
                                        remote exchange (REPARTITION, HASH, ["c_birth_country_1023", "c_customer_id_1010", "c_email_address_1025", "c_first_name_1017", "c_last_name_1018", "c_login_1024", "c_preferred_cust_flag_1019", "d_year_1067"])
                                            partial hashaggregation over (c_birth_country_1023, c_customer_id_1010, c_email_address_1025, c_first_name_1017, c_last_name_1018, c_login_1024, c_preferred_cust_flag_1019, d_year_1067)
                                                join (INNER, PARTITIONED):
                                                    remote exchange (REPARTITION, HASH, ["cs_bill_customer_sk_1030"])
                                                        join (INNER, REPLICATED):
                                                            scan catalog_sales
                                                            local exchange (GATHER, SINGLE, [])
                                                                remote exchange (REPLICATE, BROADCAST, [])
                                                                    scan date_dim
                                                    local exchange (GATHER, SINGLE, [])
                                                        remote exchange (REPARTITION, HASH, ["c_customer_sk_1009"])
                                                            scan customer
                            remote exchange (REPARTITION, HASH, ["c_customer_id_1128"])
                                single hashaggregation over (c_birth_country_1141, c_customer_id_1128, c_email_address_1143, c_first_name_1135, c_last_name_1136, c_login_1142, c_preferred_cust_flag_1137, d_year_1185)
                                    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_1266"])
                        single hashaggregation over (c_birth_country_1279, c_customer_id_1266, c_email_address_1281, c_first_name_1273, c_last_name_1274, c_login_1280, c_preferred_cust_flag_1275, d_year_1312)
                            join (INNER, REPLICATED):
                                join (INNER, REPLICATED):
                                    values (0 rows)
                                    values (0 rows)
                                values (0 rows)
                    remote exchange (REPARTITION, HASH, ["c_customer_id_1363"])
                        single hashaggregation over (c_birth_country_1376, c_customer_id_1363, c_email_address_1378, c_first_name_1370, c_last_name_1371, c_login_1377, c_preferred_cust_flag_1372, d_year_1420)
                            join (INNER, REPLICATED):
                                join (INNER, REPLICATED):
                                    values (0 rows)
                                    values (0 rows)
                                values (0 rows)
                    remote exchange (REPARTITION, HASH, ["c_customer_id_1481"])
                        final hashaggregation over (c_birth_country_1494, c_customer_id_1481, c_email_address_1496, c_first_name_1488, c_last_name_1489, c_login_1495, c_preferred_cust_flag_1490, d_year_1538)
                            local exchange (GATHER, SINGLE, [])
                                remote exchange (REPARTITION, HASH, ["c_birth_country_1494", "c_customer_id_1481", "c_email_address_1496", "c_first_name_1488", "c_last_name_1489", "c_login_1495", "c_preferred_cust_flag_1490", "d_year_1538"])
                                    partial hashaggregation over (c_birth_country_1494, c_customer_id_1481, c_email_address_1496, c_first_name_1488, c_last_name_1489, c_login_1495, c_preferred_cust_flag_1490, d_year_1538)
                                        join (INNER, PARTITIONED):
                                            remote exchange (REPARTITION, HASH, ["ws_bill_customer_sk_1502"])
                                                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_1480"])
                                                    scan customer
            local exchange (GATHER, SINGLE, [])
                remote exchange (REPARTITION, HASH, ["c_customer_id_1619"])
                    single hashaggregation over (c_birth_country_1632, c_customer_id_1619, c_email_address_1634, c_first_name_1626, c_last_name_1627, c_login_1633, c_preferred_cust_flag_1628, d_year_1665)
                        join (INNER, REPLICATED):
                            join (INNER, REPLICATED):
                                values (0 rows)
                                values (0 rows)
                            values (0 rows)
                remote exchange (REPARTITION, HASH, ["c_customer_id_1716"])
                    single hashaggregation over (c_birth_country_1729, c_customer_id_1716, c_email_address_1731, c_first_name_1723, c_last_name_1724, c_login_1730, c_preferred_cust_flag_1725, d_year_1773)
                        join (INNER, REPLICATED):
                            join (INNER, REPLICATED):
                                values (0 rows)
                                values (0 rows)
                            values (0 rows)
                remote exchange (REPARTITION, HASH, ["c_customer_id_1834"])
                    final hashaggregation over (c_birth_country_1847, c_customer_id_1834, c_email_address_1849, c_first_name_1841, c_last_name_1842, c_login_1848, c_preferred_cust_flag_1843, d_year_1891)
                        local exchange (GATHER, SINGLE, [])
                            remote exchange (REPARTITION, HASH, ["c_birth_country_1847", "c_customer_id_1834", "c_email_address_1849", "c_first_name_1841", "c_last_name_1842", "c_login_1848", "c_preferred_cust_flag_1843", "d_year_1891"])
                                partial hashaggregation over (c_birth_country_1847, c_customer_id_1834, c_email_address_1849, c_first_name_1841, c_last_name_1842, c_login_1848, c_preferred_cust_flag_1843, d_year_1891)
                                    join (INNER, PARTITIONED):
                                        remote exchange (REPARTITION, HASH, ["ws_bill_customer_sk_1855"])
                                            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_1833"])
                                                scan customer
