local exchange (GATHER, SINGLE, [])
    remote exchange (GATHER, SINGLE, [])
        join (INNER, PARTITIONED):
            cross join:
                final hashaggregation over (i_brand_id, i_category_id, i_class_id)
                    local exchange (GATHER, SINGLE, [])
                        remote exchange (REPARTITION, HASH, ["i_brand_id", "i_category_id", "i_class_id"])
                            partial hashaggregation over (i_brand_id, i_category_id, i_class_id)
                                join (INNER, REPLICATED):
                                    semijoin (PARTITIONED):
                                        remote exchange (REPARTITION, HASH, ["ss_item_sk"])
                                            join (INNER, REPLICATED):
                                                join (INNER, PARTITIONED):
                                                    remote exchange (REPARTITION, HASH, ["ss_sold_date_sk"])
                                                        scan store_sales
                                                    local exchange (GATHER, SINGLE, [])
                                                        remote exchange (REPARTITION, HASH, ["d_date_sk"])
                                                            scan date_dim
                                                local exchange (GATHER, SINGLE, [])
                                                    remote exchange (REPLICATE, BROADCAST, [])
                                                        scan item
                                        local exchange (GATHER, SINGLE, [])
                                            remote exchange (REPARTITION, HASH, ["i_item_sk_3"])
                                                join (INNER, PARTITIONED):
                                                    remote exchange (REPARTITION, HASH, ["i_brand_id_10", "i_category_id_14", "i_class_id_12"])
                                                        scan item
                                                    final hashaggregation over (expr_219, expr_220, expr_221)
                                                        local exchange (GATHER, SINGLE, [])
                                                            remote exchange (REPARTITION, HASH, ["i_brand_id_57", "i_category_id_61", "i_class_id_59"])
                                                                partial hashaggregation over (i_brand_id_57, i_category_id_61, i_class_id_59)
                                                                    join (INNER, PARTITIONED):
                                                                        remote exchange (REPARTITION, HASH, ["ss_item_sk_28"])
                                                                            join (INNER, REPLICATED):
                                                                                scan store_sales
                                                                                local exchange (GATHER, SINGLE, [])
                                                                                    remote exchange (REPLICATE, BROADCAST, [])
                                                                                        scan date_dim (pushdown = true)
                                                                        local exchange (GATHER, SINGLE, [])
                                                                            remote exchange (REPARTITION, HASH, ["i_item_sk_50"])
                                                                                scan item
                                                            remote exchange (REPARTITION, HASH, ["i_brand_id_112", "i_category_id_116", "i_class_id_114"])
                                                                partial hashaggregation over (i_brand_id_112, i_category_id_116, i_class_id_114)
                                                                    join (INNER, PARTITIONED):
                                                                        remote exchange (REPARTITION, HASH, ["cs_item_sk"])
                                                                            join (INNER, REPLICATED):
                                                                                scan catalog_sales
                                                                                local exchange (GATHER, SINGLE, [])
                                                                                    remote exchange (REPLICATE, BROADCAST, [])
                                                                                        scan date_dim (pushdown = true)
                                                                        local exchange (GATHER, SINGLE, [])
                                                                            remote exchange (REPARTITION, HASH, ["i_item_sk_105"])
                                                                                scan item
                                                            remote exchange (REPARTITION, HASH, ["i_brand_id_171", "i_category_id_175", "i_class_id_173"])
                                                                partial hashaggregation over (i_brand_id_171, i_category_id_175, i_class_id_173)
                                                                    join (INNER, PARTITIONED):
                                                                        remote exchange (REPARTITION, HASH, ["ws_item_sk"])
                                                                            join (INNER, REPLICATED):
                                                                                scan web_sales
                                                                                local exchange (GATHER, SINGLE, [])
                                                                                    remote exchange (REPLICATE, BROADCAST, [])
                                                                                        scan date_dim (pushdown = true)
                                                                        local exchange (GATHER, SINGLE, [])
                                                                            remote exchange (REPARTITION, HASH, ["i_item_sk_164"])
                                                                                scan item
                                    local exchange (GATHER, SINGLE, [])
                                        remote exchange (REPLICATE, BROADCAST, [])
                                            local exchange (GATHER, SINGLE, [])
                                                remote exchange (GATHER, SINGLE, [])
                                                    scan date_dim (pushdown = true)
                local exchange (GATHER, SINGLE, [])
                    remote exchange (REPLICATE, BROADCAST, [])
                        final hashaggregation over ()
                            local exchange (GATHER, SINGLE, [])
                                remote exchange (GATHER, SINGLE, [])
                                    partial hashaggregation over ()
                                        join (INNER, REPLICATED):
                                            scan store_sales
                                            local exchange (GATHER, SINGLE, [])
                                                remote exchange (REPLICATE, BROADCAST, [])
                                                    scan date_dim (pushdown = true)
                                    partial hashaggregation over ()
                                        join (INNER, REPLICATED):
                                            scan catalog_sales
                                            local exchange (GATHER, SINGLE, [])
                                                remote exchange (REPLICATE, BROADCAST, [])
                                                    scan date_dim (pushdown = true)
                                    partial hashaggregation over ()
                                        join (INNER, REPLICATED):
                                            scan web_sales
                                            local exchange (GATHER, SINGLE, [])
                                                remote exchange (REPLICATE, BROADCAST, [])
                                                    scan date_dim (pushdown = true)
            cross join:
                final hashaggregation over (i_brand_id_512, i_category_id_516, i_class_id_514)
                    local exchange (GATHER, SINGLE, [])
                        remote exchange (REPARTITION, HASH, ["i_brand_id_512", "i_category_id_516", "i_class_id_514"])
                            partial hashaggregation over (i_brand_id_512, i_category_id_516, i_class_id_514)
                                join (INNER, REPLICATED):
                                    semijoin (PARTITIONED):
                                        remote exchange (REPARTITION, HASH, ["ss_item_sk_483"])
                                            join (INNER, REPLICATED):
                                                join (INNER, PARTITIONED):
                                                    remote exchange (REPARTITION, HASH, ["ss_sold_date_sk_481"])
                                                        scan store_sales
                                                    local exchange (GATHER, SINGLE, [])
                                                        remote exchange (REPARTITION, HASH, ["d_date_sk_528"])
                                                            scan date_dim
                                                local exchange (GATHER, SINGLE, [])
                                                    remote exchange (REPLICATE, BROADCAST, [])
                                                        scan item
                                        local exchange (GATHER, SINGLE, [])
                                            remote exchange (REPARTITION, HASH, ["i_item_sk_558"])
                                                join (INNER, PARTITIONED):
                                                    remote exchange (REPARTITION, HASH, ["i_brand_id_565", "i_category_id_569", "i_class_id_567"])
                                                        scan item
                                                    final hashaggregation over (expr_843, expr_844, expr_845)
                                                        local exchange (GATHER, SINGLE, [])
                                                            remote exchange (REPARTITION, HASH, ["i_brand_id_612", "i_category_id_616", "i_class_id_614"])
                                                                partial hashaggregation over (i_brand_id_612, i_category_id_616, i_class_id_614)
                                                                    join (INNER, PARTITIONED):
                                                                        remote exchange (REPARTITION, HASH, ["ss_item_sk_583"])
                                                                            join (INNER, REPLICATED):
                                                                                scan store_sales
                                                                                local exchange (GATHER, SINGLE, [])
                                                                                    remote exchange (REPLICATE, BROADCAST, [])
                                                                                        scan date_dim (pushdown = true)
                                                                        local exchange (GATHER, SINGLE, [])
                                                                            remote exchange (REPARTITION, HASH, ["i_item_sk_605"])
                                                                                scan item
                                                            remote exchange (REPARTITION, HASH, ["i_brand_id_702", "i_category_id_706", "i_class_id_704"])
                                                                partial hashaggregation over (i_brand_id_702, i_category_id_706, i_class_id_704)
                                                                    join (INNER, PARTITIONED):
                                                                        remote exchange (REPARTITION, HASH, ["cs_item_sk_675"])
                                                                            join (INNER, REPLICATED):
                                                                                scan catalog_sales
                                                                                local exchange (GATHER, SINGLE, [])
                                                                                    remote exchange (REPLICATE, BROADCAST, [])
                                                                                        scan date_dim (pushdown = true)
                                                                        local exchange (GATHER, SINGLE, [])
                                                                            remote exchange (REPARTITION, HASH, ["i_item_sk_695"])
                                                                                scan item
                                                            remote exchange (REPARTITION, HASH, ["i_brand_id_795", "i_category_id_799", "i_class_id_797"])
                                                                partial hashaggregation over (i_brand_id_795, i_category_id_799, i_class_id_797)
                                                                    join (INNER, PARTITIONED):
                                                                        remote exchange (REPARTITION, HASH, ["ws_item_sk_756"])
                                                                            join (INNER, REPLICATED):
                                                                                scan web_sales
                                                                                local exchange (GATHER, SINGLE, [])
                                                                                    remote exchange (REPLICATE, BROADCAST, [])
                                                                                        scan date_dim (pushdown = true)
                                                                        local exchange (GATHER, SINGLE, [])
                                                                            remote exchange (REPARTITION, HASH, ["i_item_sk_788"])
                                                                                scan item
                                    local exchange (GATHER, SINGLE, [])
                                        remote exchange (REPLICATE, BROADCAST, [])
                                            local exchange (GATHER, SINGLE, [])
                                                remote exchange (GATHER, SINGLE, [])
                                                    scan date_dim (pushdown = true)
                local exchange (GATHER, SINGLE, [])
                    remote exchange (REPLICATE, BROADCAST, [])
                        final hashaggregation over ()
                            local exchange (GATHER, SINGLE, [])
                                remote exchange (GATHER, SINGLE, [])
                                    partial hashaggregation over ()
                                        join (INNER, REPLICATED):
                                            scan store_sales
                                            local exchange (GATHER, SINGLE, [])
                                                remote exchange (REPLICATE, BROADCAST, [])
                                                    scan date_dim (pushdown = true)
                                    partial hashaggregation over ()
                                        join (INNER, REPLICATED):
                                            scan catalog_sales
                                            local exchange (GATHER, SINGLE, [])
                                                remote exchange (REPLICATE, BROADCAST, [])
                                                    scan date_dim (pushdown = true)
                                    partial hashaggregation over ()
                                        join (INNER, REPLICATED):
                                            scan web_sales
                                            local exchange (GATHER, SINGLE, [])
                                                remote exchange (REPLICATE, BROADCAST, [])
                                                    scan date_dim (pushdown = true)
