trinodb / trino

Official repository of Trino, the distributed SQL query engine for big data, formerly known as PrestoSQL (https://trino.io)
https://trino.io
Apache License 2.0
10.07k stars 2.91k forks source link

Trino v428: java.lang.IllegalArgumentException: No catalog handle for partitioning handle: SINGLE #21506

Open sdas987 opened 4 months ago

sdas987 commented 4 months ago

Seeing java.lang.IllegalArgumentException: No catalog handle for partitioning handle: SINGLE on Trino version 428 when using AUTOMATIC as the join_distribution_type. When I change the join_distribution_type to PARTITIONED, I do not see the error. This happens on running with hive catalog.

chenjian2664 commented 4 months ago

Could you please give more details? How to reproduce

sdas987 commented 4 months ago

I can share the explain plan, will that help?

chenjian2664 commented 4 months ago

Yes, please

sdas987 commented 4 months ago
Trino version: 428
Fragment 0 [COORDINATOR_ONLY]
    Output layout: [rows]
    Output partitioning: SINGLE []
    Output[columnNames = [rows]]
    │   Layout: [rows:bigint]
    │   Estimates: {rows: ? (?), cpu: 0, memory: 0B, network: 0B}
    └─ TableCommit[target = hive:ump_report_service.custom_report_e0a728d3_b1e0_4a1c_80d6_e1f849b525ab_parquet_3]
       │   Layout: [rows:bigint]
       │   Collected statistics:
       │   aggregations =>
       │       count[flight.advertiser_name] => [count:flight.advertiser_name := count("count")]
       │       approx_distinct[flight.advertiser_name] => [approx_distinct:flight.advertiser_name := approx_distinct("approx_distinct_332")]
       │       TOTAL_SIZE_IN_BYTES[flight.advertiser_name] => [total_size_in_bytes:flight.advertiser_name := $internal$sum_data_size_for_stats("$internal$sum_data_size_for_stats")]
       │       MAX_VALUE_SIZE_IN_BYTES[flight.advertiser_name] => [max_value_size_in_bytes:flight.advertiser_name := $internal$max_data_size_for_stats("$internal$max_data_size_for_stats")]
       │       count[activity.activity_name] => [count:activity.activity_name := count("count_333")]
       │       approx_distinct[activity.activity_name] => [approx_distinct:activity.activity_name := approx_distinct("approx_distinct_334")]
       │       TOTAL_SIZE_IN_BYTES[activity.activity_name] => [total_size_in_bytes:activity.activity_name := $internal$sum_data_size_for_stats("$internal$sum_data_size_for_stats_335")]
       │       MAX_VALUE_SIZE_IN_BYTES[activity.activity_name] => [max_value_size_in_bytes:activity.activity_name := $internal$max_data_size_for_stats("$internal$max_data_size_for_stats_336")]
       │       count[flight.campaign_name] => [count:flight.campaign_name := count("count_337")]
       │       approx_distinct[flight.campaign_name] => [approx_distinct:flight.campaign_name := approx_distinct("approx_distinct_338")]
       │       TOTAL_SIZE_IN_BYTES[flight.campaign_name] => [total_size_in_bytes:flight.campaign_name := $internal$sum_data_size_for_stats("$internal$sum_data_size_for_stats_339")]
       │       MAX_VALUE_SIZE_IN_BYTES[flight.campaign_name] => [max_value_size_in_bytes:flight.campaign_name := $internal$max_data_size_for_stats("$internal$max_data_size_for_stats_340")]
       │       count[flight.flight_name] => [count:flight.flight_name := count("count_341")]
       │       approx_distinct[flight.flight_name] => [approx_distinct:flight.flight_name := approx_distinct("approx_distinct_342")]
       │       TOTAL_SIZE_IN_BYTES[flight.flight_name] => [total_size_in_bytes:flight.flight_name := $internal$sum_data_size_for_stats("$internal$sum_data_size_for_stats_343")]
       │       MAX_VALUE_SIZE_IN_BYTES[flight.flight_name] => [max_value_size_in_bytes:flight.flight_name := $internal$max_data_size_for_stats("$internal$max_data_size_for_stats_344")]
       │       count[flight.flight_start_time_ctz] => [count:flight.flight_start_time_ctz := count("count_345")]
       │       approx_distinct[flight.flight_start_time_ctz] => [approx_distinct:flight.flight_start_time_ctz := approx_distinct("approx_distinct_346")]
       │       TOTAL_SIZE_IN_BYTES[flight.flight_start_time_ctz] => [total_size_in_bytes:flight.flight_start_time_ctz := $internal$sum_data_size_for_stats("$internal$sum_data_size_for_stats_347")]
       │       MAX_VALUE_SIZE_IN_BYTES[flight.flight_start_time_ctz] => [max_value_size_in_bytes:flight.flight_start_time_ctz := $internal$max_data_size_for_stats("$internal$max_data_size_for_stats_348")]
       │       count[flight.flight_end_time_ctz] => [count:flight.flight_end_time_ctz := count("count_349")]
       │       approx_distinct[flight.flight_end_time_ctz] => [approx_distinct:flight.flight_end_time_ctz := approx_distinct("approx_distinct_350")]
       │       TOTAL_SIZE_IN_BYTES[flight.flight_end_time_ctz] => [total_size_in_bytes:flight.flight_end_time_ctz := $internal$sum_data_size_for_stats("$internal$sum_data_size_for_stats_351")]
       │       MAX_VALUE_SIZE_IN_BYTES[flight.flight_end_time_ctz] => [max_value_size_in_bytes:flight.flight_end_time_ctz := $internal$max_data_size_for_stats("$internal$max_data_size_for_stats_352")]
       │       count[creative.creative_concept] => [count:creative.creative_concept := count("count_353")]
       │       approx_distinct[creative.creative_concept] => [approx_distinct:creative.creative_concept := approx_distinct("approx_distinct_354")]
       │       TOTAL_SIZE_IN_BYTES[creative.creative_concept] => [total_size_in_bytes:creative.creative_concept := $internal$sum_data_size_for_stats("$internal$sum_data_size_for_stats_355")]
       │       MAX_VALUE_SIZE_IN_BYTES[creative.creative_concept] => [max_value_size_in_bytes:creative.creative_concept := $internal$max_data_size_for_stats("$internal$max_data_size_for_stats_356")]
       │       min[creative.creative_duration] => [min:creative.creative_duration := min("min")]
       │       max[creative.creative_duration] => [max:creative.creative_duration := max("max_357")]
       │       approx_distinct[creative.creative_duration] => [approx_distinct:creative.creative_duration := approx_distinct("approx_distinct_358")]
       │       count[creative.creative_duration] => [count:creative.creative_duration := count("count_359")]
       │       count[creative.creative_name] => [count:creative.creative_name := count("count_360")]
       │       approx_distinct[creative.creative_name] => [approx_distinct:creative.creative_name := approx_distinct("approx_distinct_361")]
       │       TOTAL_SIZE_IN_BYTES[creative.creative_name] => [total_size_in_bytes:creative.creative_name := $internal$sum_data_size_for_stats("$internal$sum_data_size_for_stats_362")]
       │       MAX_VALUE_SIZE_IN_BYTES[creative.creative_name] => [max_value_size_in_bytes:creative.creative_name := $internal$max_data_size_for_stats("$internal$max_data_size_for_stats_363")]
       │       count[creative.creative_size] => [count:creative.creative_size := count("count_364")]
       │       approx_distinct[creative.creative_size] => [approx_distinct:creative.creative_size := approx_distinct("approx_distinct_365")]
       │       TOTAL_SIZE_IN_BYTES[creative.creative_size] => [total_size_in_bytes:creative.creative_size := $internal$sum_data_size_for_stats("$internal$sum_data_size_for_stats_366")]
       │       MAX_VALUE_SIZE_IN_BYTES[creative.creative_size] => [max_value_size_in_bytes:creative.creative_size := $internal$max_data_size_for_stats("$internal$max_data_size_for_stats_367")]
       │       count[fact_events2.device_os] => [count:fact_events2.device_os := count("count_368")]
       │       approx_distinct[fact_events2.device_os] => [approx_distinct:fact_events2.device_os := approx_distinct("approx_distinct_369")]
       │       TOTAL_SIZE_IN_BYTES[fact_events2.device_os] => [total_size_in_bytes:fact_events2.device_os := $internal$sum_data_size_for_stats("$internal$sum_data_size_for_stats_370")]
       │       MAX_VALUE_SIZE_IN_BYTES[fact_events2.device_os] => [max_value_size_in_bytes:fact_events2.device_os := $internal$max_data_size_for_stats("$internal$max_data_size_for_stats_371")]
       │       count[fact_events2.device_vendor] => [count:fact_events2.device_vendor := count("count_372")]
       │       approx_distinct[fact_events2.device_vendor] => [approx_distinct:fact_events2.device_vendor := approx_distinct("approx_distinct_373")]
       │       TOTAL_SIZE_IN_BYTES[fact_events2.device_vendor] => [total_size_in_bytes:fact_events2.device_vendor := $internal$sum_data_size_for_stats("$internal$sum_data_size_for_stats_374")]
       │       MAX_VALUE_SIZE_IN_BYTES[fact_events2.device_vendor] => [max_value_size_in_bytes:fact_events2.device_vendor := $internal$max_data_size_for_stats("$internal$max_data_size_for_stats_375")]
       │       count[fact_events2.device_type] => [count:fact_events2.device_type := count("count_376")]
       │       approx_distinct[fact_events2.device_type] => [approx_distinct:fact_events2.device_type := approx_distinct("approx_distinct_377")]
       │       TOTAL_SIZE_IN_BYTES[fact_events2.device_type] => [total_size_in_bytes:fact_events2.device_type := $internal$sum_data_size_for_stats("$internal$sum_data_size_for_stats_378")]
       │       MAX_VALUE_SIZE_IN_BYTES[fact_events2.device_type] => [max_value_size_in_bytes:fact_events2.device_type := $internal$max_data_size_for_stats("$internal$max_data_size_for_stats_379")]
       │       count[browser.browser] => [count:browser.browser := count("count_380")]
       │       approx_distinct[browser.browser] => [approx_distinct:browser.browser := approx_distinct("approx_distinct_381")]
       │       TOTAL_SIZE_IN_BYTES[browser.browser] => [total_size_in_bytes:browser.browser := $internal$sum_data_size_for_stats("$internal$sum_data_size_for_stats_382")]
       │       MAX_VALUE_SIZE_IN_BYTES[browser.browser] => [max_value_size_in_bytes:browser.browser := $internal$max_data_size_for_stats("$internal$max_data_size_for_stats_383")]
       │       count[exchange.exchange] => [count:exchange.exchange := count("count_384")]
       │       approx_distinct[exchange.exchange] => [approx_distinct:exchange.exchange := approx_distinct("approx_distinct_385")]
       │       TOTAL_SIZE_IN_BYTES[exchange.exchange] => [total_size_in_bytes:exchange.exchange := $internal$sum_data_size_for_stats("$internal$sum_data_size_for_stats_386")]
       │       MAX_VALUE_SIZE_IN_BYTES[exchange.exchange] => [max_value_size_in_bytes:exchange.exchange := $internal$max_data_size_for_stats("$internal$max_data_size_for_stats_387")]
       │       count[inventory_source.package] => [count:inventory_source.package := count("count_388")]
       │       approx_distinct[inventory_source.package] => [approx_distinct:inventory_source.package := approx_distinct("approx_distinct_389")]
       │       TOTAL_SIZE_IN_BYTES[inventory_source.package] => [total_size_in_bytes:inventory_source.package := $internal$sum_data_size_for_stats("$internal$sum_data_size_for_stats_390")]
       │       MAX_VALUE_SIZE_IN_BYTES[inventory_source.package] => [max_value_size_in_bytes:inventory_source.package := $internal$max_data_size_for_stats("$internal$max_data_size_for_stats_391")]
       │       count[inventory_source.deal] => [count:inventory_source.deal := count("count_392")]
       │       approx_distinct[inventory_source.deal] => [approx_distinct:inventory_source.deal := approx_distinct("approx_distinct_393")]
       │       TOTAL_SIZE_IN_BYTES[inventory_source.deal] => [total_size_in_bytes:inventory_source.deal := $internal$sum_data_size_for_stats("$internal$sum_data_size_for_stats_394")]
       │       MAX_VALUE_SIZE_IN_BYTES[inventory_source.deal] => [max_value_size_in_bytes:inventory_source.deal := $internal$max_data_size_for_stats("$internal$max_data_size_for_stats_395")]
       │       count[fact_events2.app] => [count:fact_events2.app := count("count_396")]
       │       approx_distinct[fact_events2.app] => [approx_distinct:fact_events2.app := approx_distinct("approx_distinct_397")]
       │       TOTAL_SIZE_IN_BYTES[fact_events2.app] => [total_size_in_bytes:fact_events2.app := $internal$sum_data_size_for_stats("$internal$sum_data_size_for_stats_398")]
       │       MAX_VALUE_SIZE_IN_BYTES[fact_events2.app] => [max_value_size_in_bytes:fact_events2.app := $internal$max_data_size_for_stats("$internal$max_data_size_for_stats_399")]
       │       count[fact_events2.created_dt] => [count:fact_events2.created_dt := count("count_400")]
       │       approx_distinct[fact_events2.created_dt] => [approx_distinct:fact_events2.created_dt := approx_distinct("approx_distinct_401")]
       │       TOTAL_SIZE_IN_BYTES[fact_events2.created_dt] => [total_size_in_bytes:fact_events2.created_dt := $internal$sum_data_size_for_stats("$internal$sum_data_size_for_stats_402")]
       │       MAX_VALUE_SIZE_IN_BYTES[fact_events2.created_dt] => [max_value_size_in_bytes:fact_events2.created_dt := $internal$max_data_size_for_stats("$internal$max_data_size_for_stats_403")]
       │       count[fact_events2.week] => [count:fact_events2.week := count("count_404")]
       │       approx_distinct[fact_events2.week] => [approx_distinct:fact_events2.week := approx_distinct("approx_distinct_405")]
       │       TOTAL_SIZE_IN_BYTES[fact_events2.week] => [total_size_in_bytes:fact_events2.week := $internal$sum_data_size_for_stats("$internal$sum_data_size_for_stats_406")]
       │       MAX_VALUE_SIZE_IN_BYTES[fact_events2.week] => [max_value_size_in_bytes:fact_events2.week := $internal$max_data_size_for_stats("$internal$max_data_size_for_stats_407")]
       │       min[fact_events2.campaign_total_actions] => [min:fact_events2.campaign_total_actions := min("min_408")]
       │       max[fact_events2.campaign_total_actions] => [max:fact_events2.campaign_total_actions := max("max_409")]
       │       approx_distinct[fact_events2.campaign_total_actions] => [approx_distinct:fact_events2.campaign_total_actions := approx_distinct("approx_distinct_410")]
       │       count[fact_events2.campaign_total_actions] => [count:fact_events2.campaign_total_actions := count("count_411")]
       │       min[fact_events2.campaign_click_actions] => [min:fact_events2.campaign_click_actions := min("min_412")]
       │       max[fact_events2.campaign_click_actions] => [max:fact_events2.campaign_click_actions := max("max_413")]
       │       approx_distinct[fact_events2.campaign_click_actions] => [approx_distinct:fact_events2.campaign_click_actions := approx_distinct("approx_distinct_414")]
       │       count[fact_events2.campaign_click_actions] => [count:fact_events2.campaign_click_actions := count("count_415")]
       │       min[fact_events2.campaign_view_actions] => [min:fact_events2.campaign_view_actions := min("min_416")]
       │       max[fact_events2.campaign_view_actions] => [max:fact_events2.campaign_view_actions := max("max_417")]
       │       approx_distinct[fact_events2.campaign_view_actions] => [approx_distinct:fact_events2.campaign_view_actions := approx_distinct("approx_distinct_418")]
       │       count[fact_events2.campaign_view_actions] => [count:fact_events2.campaign_view_actions := count("count_419")]
       │       min[fact_events2.total_hh_conversions] => [min:fact_events2.total_hh_conversions := min("min_420")]
       │       max[fact_events2.total_hh_conversions] => [max:fact_events2.total_hh_conversions := max("max_421")]
       │       approx_distinct[fact_events2.total_hh_conversions] => [approx_distinct:fact_events2.total_hh_conversions := approx_distinct("approx_distinct_422")]
       │       count[fact_events2.total_hh_conversions] => [count:fact_events2.total_hh_conversions := count("count_423")]
       │       min[fact_events2.click_hh_conversions] => [min:fact_events2.click_hh_conversions := min("min_424")]
       │       max[fact_events2.click_hh_conversions] => [max:fact_events2.click_hh_conversions := max("max_425")]
       │       approx_distinct[fact_events2.click_hh_conversions] => [approx_distinct:fact_events2.click_hh_conversions := approx_distinct("approx_distinct_426")]
       │       count[fact_events2.click_hh_conversions] => [count:fact_events2.click_hh_conversions := count("count_427")]
       │       min[fact_events2.view_hh_conversions] => [min:fact_events2.view_hh_conversions := min("min_428")]
       │       max[fact_events2.view_hh_conversions] => [max:fact_events2.view_hh_conversions := max("max_429")]
       │       approx_distinct[fact_events2.view_hh_conversions] => [approx_distinct:fact_events2.view_hh_conversions := approx_distinct("approx_distinct_430")]
       │       count[fact_events2.view_hh_conversions] => [count:fact_events2.view_hh_conversions := count("count_431")]
       │       min[fact_events2.total_id_conversions] => [min:fact_events2.total_id_conversions := min("min_432")]
       │       max[fact_events2.total_id_conversions] => [max:fact_events2.total_id_conversions := max("max_433")]
       │       approx_distinct[fact_events2.total_id_conversions] => [approx_distinct:fact_events2.total_id_conversions := approx_distinct("approx_distinct_434")]
       │       count[fact_events2.total_id_conversions] => [count:fact_events2.total_id_conversions := count("count_435")]
       │       min[fact_events2.click_id_conversions] => [min:fact_events2.click_id_conversions := min("min_436")]
       │       max[fact_events2.click_id_conversions] => [max:fact_events2.click_id_conversions := max("max_437")]
       │       approx_distinct[fact_events2.click_id_conversions] => [approx_distinct:fact_events2.click_id_conversions := approx_distinct("approx_distinct_438")]
       │       count[fact_events2.click_id_conversions] => [count:fact_events2.click_id_conversions := count("count_439")]
       │       min[fact_events2.view_id_conversions] => [min:fact_events2.view_id_conversions := min("min_440")]
       │       max[fact_events2.view_id_conversions] => [max:fact_events2.view_id_conversions := max("max_441")]
       │       approx_distinct[fact_events2.view_id_conversions] => [approx_distinct:fact_events2.view_id_conversions := approx_distinct("approx_distinct_442")]
       │       count[fact_events2.view_id_conversions] => [count:fact_events2.view_id_conversions := count("count_443")]
       │       min[fact_events2.campaign_click_pixel_trans_price] => [min:fact_events2.campaign_click_pixel_trans_price := min("min_444")]
       │       max[fact_events2.campaign_click_pixel_trans_price] => [max:fact_events2.campaign_click_pixel_trans_price := max("max_445")]
       │       approx_distinct[fact_events2.campaign_click_pixel_trans_price] => [approx_distinct:fact_events2.campaign_click_pixel_trans_price := approx_distinct("approx_distinct_446")]
       │       count[fact_events2.campaign_click_pixel_trans_price] => [count:fact_events2.campaign_click_pixel_trans_price := count("count_447")]
       │       min[fact_events2.campaign_view_pixel_trans_price] => [min:fact_events2.campaign_view_pixel_trans_price := min("min_448")]
       │       max[fact_events2.campaign_view_pixel_trans_price] => [max:fact_events2.campaign_view_pixel_trans_price := max("max_449")]
       │       approx_distinct[fact_events2.campaign_view_pixel_trans_price] => [approx_distinct:fact_events2.campaign_view_pixel_trans_price := approx_distinct("approx_distinct_450")]
       │       count[fact_events2.campaign_view_pixel_trans_price] => [count:fact_events2.campaign_view_pixel_trans_price := count("count_451")]
       │       min[fact_events2.campaign_total_pixel_trans_price] => [min:fact_events2.campaign_total_pixel_trans_price := min("min_452")]
       │       max[fact_events2.campaign_total_pixel_trans_price] => [max:fact_events2.campaign_total_pixel_trans_price := max("max_453")]
       │       approx_distinct[fact_events2.campaign_total_pixel_trans_price] => [approx_distinct:fact_events2.campaign_total_pixel_trans_price := approx_distinct("approx_distinct_454")]
       │       count[fact_events2.campaign_total_pixel_trans_price] => [count:fact_events2.campaign_total_pixel_trans_price := count("count_455")]
       │       min[fact_events2.cpa] => [min:fact_events2.cpa := min("min_456")]
       │       max[fact_events2.cpa] => [max:fact_events2.cpa := max("max_457")]
       │       approx_distinct[fact_events2.cpa] => [approx_distinct:fact_events2.cpa := approx_distinct("approx_distinct_458")]
       │       count[fact_events2.cpa] => [count:fact_events2.cpa := count("count_459")]
       │       grouped by => []
       └─ LocalExchange[partitioning = SINGLE]
          │   Layout: [partialrows:bigint, fragment:varbinary, count:bigint, approx_distinct_332:HyperLogLog, $internal$sum_data_size_for_stats:bigint, $internal$max_data_size_for_stats:bigint, count_333:bigint, approx_distinct_334:HyperLogLog, $internal$sum_data_size_for_stats_335:bigint, $internal$max_data_size_for_stats_336:bigint, count_337:bigint, approx_distinct_338:HyperLogLog, $internal$sum_data_size_for_stats_339:bigint, $internal$max_data_size_for_stats_340:bigint, count_341:bigint, approx_distinct_342:HyperLogLog, $internal$sum_data_size_for_stats_343:bigint, $internal$max_data_size_for_stats_344:bigint, count_345:bigint, approx_distinct_346:HyperLogLog, $internal$sum_data_size_for_stats_347:bigint, $internal$max_data_size_for_stats_348:bigint, count_349:bigint, approx_distinct_350:HyperLogLog, $internal$sum_data_size_for_stats_351:bigint, $internal$max_data_size_for_stats_352:bigint, count_353:bigint, approx_distinct_354:HyperLogLog, $internal$sum_data_size_for_stats_355:bigint, $internal$max_data_size_for_stats_356:bigint, min:integer, max_357:integer, approx_distinct_358:HyperLogLog, count_359:bigint, count_360:bigint, approx_distinct_361:HyperLogLog, $internal$sum_data_size_for_stats_362:bigint, $internal$max_data_size_for_stats_363:bigint, count_364:bigint, approx_distinct_365:HyperLogLog, $internal$sum_data_size_for_stats_366:bigint, $internal$max_data_size_for_stats_367:bigint, count_368:bigint, approx_distinct_369:HyperLogLog, $internal$sum_data_size_for_stats_370:bigint, $internal$max_data_size_for_stats_371:bigint, count_372:bigint, approx_distinct_373:HyperLogLog, $internal$sum_data_size_for_stats_374:bigint, $internal$max_data_size_for_stats_375:bigint, count_376:bigint, approx_distinct_377:HyperLogLog, $internal$sum_data_size_for_stats_378:bigint, $internal$max_data_size_for_stats_379:bigint, count_380:bigint, approx_distinct_381:HyperLogLog, $internal$sum_data_size_for_stats_382:bigint, $internal$max_data_size_for_stats_383:bigint, count_384:bigint, approx_distinct_385:HyperLogLog, $internal$sum_data_size_for_stats_386:bigint, $internal$max_data_size_for_stats_387:bigint, count_388:bigint, approx_distinct_389:HyperLogLog, $internal$sum_data_size_for_stats_390:bigint, $internal$max_data_size_for_stats_391:bigint, count_392:bigint, approx_distinct_393:HyperLogLog, $internal$sum_data_size_for_stats_394:bigint, $internal$max_data_size_for_stats_395:bigint, count_396:bigint, approx_distinct_397:HyperLogLog, $internal$sum_data_size_for_stats_398:bigint, $internal$max_data_size_for_stats_399:bigint, count_400:bigint, approx_distinct_401:HyperLogLog, $internal$sum_data_size_for_stats_402:bigint, $internal$max_data_size_for_stats_403:bigint, count_404:bigint, approx_distinct_405:HyperLogLog, $internal$sum_data_size_for_stats_406:bigint, $internal$max_data_size_for_stats_407:bigint, min_408:bigint, max_409:bigint, approx_distinct_410:HyperLogLog, count_411:bigint, min_412:bigint, max_413:bigint, approx_distinct_414:HyperLogLog, count_415:bigint, min_416:bigint, max_417:bigint, approx_distinct_418:HyperLogLog, count_419:bigint, min_420:bigint, max_421:bigint, approx_distinct_422:HyperLogLog, count_423:bigint, min_424:bigint, max_425:bigint, approx_distinct_426:HyperLogLog, count_427:bigint, min_428:bigint, max_429:bigint, approx_distinct_430:HyperLogLog, count_431:bigint, min_432:bigint, max_433:bigint, approx_distinct_434:HyperLogLog, count_435:bigint, min_436:bigint, max_437:bigint, approx_distinct_438:HyperLogLog, count_439:bigint, min_440:bigint, max_441:bigint, approx_distinct_442:HyperLogLog, count_443:bigint, min_444:double, max_445:double, approx_distinct_446:HyperLogLog, count_447:bigint, min_448:double, max_449:double, approx_distinct_450:HyperLogLog, count_451:bigint, min_452:double, max_453:double, approx_distinct_454:HyperLogLog, count_455:bigint, min_456:double, max_457:double, approx_distinct_458:HyperLogLog, count_459:bigint]
          │   Estimates: {rows: ? (?), cpu: 0, memory: 0B, network: 0B}
          └─ RemoteSource[sourceFragmentIds = [1]]
                 Layout: [partialrows:bigint, fragment:varbinary, count:bigint, approx_distinct_332:HyperLogLog, $internal$sum_data_size_for_stats:bigint, $internal$max_data_size_for_stats:bigint, count_333:bigint, approx_distinct_334:HyperLogLog, $internal$sum_data_size_for_stats_335:bigint, $internal$max_data_size_for_stats_336:bigint, count_337:bigint, approx_distinct_338:HyperLogLog, $internal$sum_data_size_for_stats_339:bigint, $internal$max_data_size_for_stats_340:bigint, count_341:bigint, approx_distinct_342:HyperLogLog, $internal$sum_data_size_for_stats_343:bigint, $internal$max_data_size_for_stats_344:bigint, count_345:bigint, approx_distinct_346:HyperLogLog, $internal$sum_data_size_for_stats_347:bigint, $internal$max_data_size_for_stats_348:bigint, count_349:bigint, approx_distinct_350:HyperLogLog, $internal$sum_data_size_for_stats_351:bigint, $internal$max_data_size_for_stats_352:bigint, count_353:bigint, approx_distinct_354:HyperLogLog, $internal$sum_data_size_for_stats_355:bigint, $internal$max_data_size_for_stats_356:bigint, min:integer, max_357:integer, approx_distinct_358:HyperLogLog, count_359:bigint, count_360:bigint, approx_distinct_361:HyperLogLog, $internal$sum_data_size_for_stats_362:bigint, $internal$max_data_size_for_stats_363:bigint, count_364:bigint, approx_distinct_365:HyperLogLog, $internal$sum_data_size_for_stats_366:bigint, $internal$max_data_size_for_stats_367:bigint, count_368:bigint, approx_distinct_369:HyperLogLog, $internal$sum_data_size_for_stats_370:bigint, $internal$max_data_size_for_stats_371:bigint, count_372:bigint, approx_distinct_373:HyperLogLog, $internal$sum_data_size_for_stats_374:bigint, $internal$max_data_size_for_stats_375:bigint, count_376:bigint, approx_distinct_377:HyperLogLog, $internal$sum_data_size_for_stats_378:bigint, $internal$max_data_size_for_stats_379:bigint, count_380:bigint, approx_distinct_381:HyperLogLog, $internal$sum_data_size_for_stats_382:bigint, $internal$max_data_size_for_stats_383:bigint, count_384:bigint, approx_distinct_385:HyperLogLog, $internal$sum_data_size_for_stats_386:bigint, $internal$max_data_size_for_stats_387:bigint, count_388:bigint, approx_distinct_389:HyperLogLog, $internal$sum_data_size_for_stats_390:bigint, $internal$max_data_size_for_stats_391:bigint, count_392:bigint, approx_distinct_393:HyperLogLog, $internal$sum_data_size_for_stats_394:bigint, $internal$max_data_size_for_stats_395:bigint, count_396:bigint, approx_distinct_397:HyperLogLog, $internal$sum_data_size_for_stats_398:bigint, $internal$max_data_size_for_stats_399:bigint, count_400:bigint, approx_distinct_401:HyperLogLog, $internal$sum_data_size_for_stats_402:bigint, $internal$max_data_size_for_stats_403:bigint, count_404:bigint, approx_distinct_405:HyperLogLog, $internal$sum_data_size_for_stats_406:bigint, $internal$max_data_size_for_stats_407:bigint, min_408:bigint, max_409:bigint, approx_distinct_410:HyperLogLog, count_411:bigint, min_412:bigint, max_413:bigint, approx_distinct_414:HyperLogLog, count_415:bigint, min_416:bigint, max_417:bigint, approx_distinct_418:HyperLogLog, count_419:bigint, min_420:bigint, max_421:bigint, approx_distinct_422:HyperLogLog, count_423:bigint, min_424:bigint, max_425:bigint, approx_distinct_426:HyperLogLog, count_427:bigint, min_428:bigint, max_429:bigint, approx_distinct_430:HyperLogLog, count_431:bigint, min_432:bigint, max_433:bigint, approx_distinct_434:HyperLogLog, count_435:bigint, min_436:bigint, max_437:bigint, approx_distinct_438:HyperLogLog, count_439:bigint, min_440:bigint, max_441:bigint, approx_distinct_442:HyperLogLog, count_443:bigint, min_444:double, max_445:double, approx_distinct_446:HyperLogLog, count_447:bigint, min_448:double, max_449:double, approx_distinct_450:HyperLogLog, count_451:bigint, min_452:double, max_453:double, approx_distinct_454:HyperLogLog, count_455:bigint, min_456:double, max_457:double, approx_distinct_458:HyperLogLog, count_459:bigint]

Fragment 1 [ROUND_ROBIN (scale writers)]
    Output layout: [partialrows, fragment, count, approx_distinct_332, $internal$sum_data_size_for_stats, $internal$max_data_size_for_stats, count_333, approx_distinct_334, $internal$sum_data_size_for_stats_335, $internal$max_data_size_for_stats_336, count_337, approx_distinct_338, $internal$sum_data_size_for_stats_339, $internal$max_data_size_for_stats_340, count_341, approx_distinct_342, $internal$sum_data_size_for_stats_343, $internal$max_data_size_for_stats_344, count_345, approx_distinct_346, $internal$sum_data_size_for_stats_347, $internal$max_data_size_for_stats_348, count_349, approx_distinct_350, $internal$sum_data_size_for_stats_351, $internal$max_data_size_for_stats_352, count_353, approx_distinct_354, $internal$sum_data_size_for_stats_355, $internal$max_data_size_for_stats_356, min, max_357, approx_distinct_358, count_359, count_360, approx_distinct_361, $internal$sum_data_size_for_stats_362, $internal$max_data_size_for_stats_363, count_364, approx_distinct_365, $internal$sum_data_size_for_stats_366, $internal$max_data_size_for_stats_367, count_368, approx_distinct_369, $internal$sum_data_size_for_stats_370, $internal$max_data_size_for_stats_371, count_372, approx_distinct_373, $internal$sum_data_size_for_stats_374, $internal$max_data_size_for_stats_375, count_376, approx_distinct_377, $internal$sum_data_size_for_stats_378, $internal$max_data_size_for_stats_379, count_380, approx_distinct_381, $internal$sum_data_size_for_stats_382, $internal$max_data_size_for_stats_383, count_384, approx_distinct_385, $internal$sum_data_size_for_stats_386, $internal$max_data_size_for_stats_387, count_388, approx_distinct_389, $internal$sum_data_size_for_stats_390, $internal$max_data_size_for_stats_391, count_392, approx_distinct_393, $internal$sum_data_size_for_stats_394, $internal$max_data_size_for_stats_395, count_396, approx_distinct_397, $internal$sum_data_size_for_stats_398, $internal$max_data_size_for_stats_399, count_400, approx_distinct_401, $internal$sum_data_size_for_stats_402, $internal$max_data_size_for_stats_403, count_404, approx_distinct_405, $internal$sum_data_size_for_stats_406, $internal$max_data_size_for_stats_407, min_408, max_409, approx_distinct_410, count_411, min_412, max_413, approx_distinct_414, count_415, min_416, max_417, approx_distinct_418, count_419, min_420, max_421, approx_distinct_422, count_423, min_424, max_425, approx_distinct_426, count_427, min_428, max_429, approx_distinct_430, count_431, min_432, max_433, approx_distinct_434, count_435, min_436, max_437, approx_distinct_438, count_439, min_440, max_441, approx_distinct_442, count_443, min_444, max_445, approx_distinct_446, count_447, min_448, max_449, approx_distinct_450, count_451, min_452, max_453, approx_distinct_454, count_455, min_456, max_457, approx_distinct_458, count_459]
    Output partitioning: SINGLE []
    Partition count: 100
    TableWriter[]
    │   Layout: [partialrows:bigint, fragment:varbinary, count:bigint, approx_distinct_332:HyperLogLog, $internal$sum_data_size_for_stats:bigint, $internal$max_data_size_for_stats:bigint, count_333:bigint, approx_distinct_334:HyperLogLog, $internal$sum_data_size_for_stats_335:bigint, $internal$max_data_size_for_stats_336:bigint, count_337:bigint, approx_distinct_338:HyperLogLog, $internal$sum_data_size_for_stats_339:bigint, $internal$max_data_size_for_stats_340:bigint, count_341:bigint, approx_distinct_342:HyperLogLog, $internal$sum_data_size_for_stats_343:bigint, $internal$max_data_size_for_stats_344:bigint, count_345:bigint, approx_distinct_346:HyperLogLog, $internal$sum_data_size_for_stats_347:bigint, $internal$max_data_size_for_stats_348:bigint, count_349:bigint, approx_distinct_350:HyperLogLog, $internal$sum_data_size_for_stats_351:bigint, $internal$max_data_size_for_stats_352:bigint, count_353:bigint, approx_distinct_354:HyperLogLog, $internal$sum_data_size_for_stats_355:bigint, $internal$max_data_size_for_stats_356:bigint, min:integer, max_357:integer, approx_distinct_358:HyperLogLog, count_359:bigint, count_360:bigint, approx_distinct_361:HyperLogLog, $internal$sum_data_size_for_stats_362:bigint, $internal$max_data_size_for_stats_363:bigint, count_364:bigint, approx_distinct_365:HyperLogLog, $internal$sum_data_size_for_stats_366:bigint, $internal$max_data_size_for_stats_367:bigint, count_368:bigint, approx_distinct_369:HyperLogLog, $internal$sum_data_size_for_stats_370:bigint, $internal$max_data_size_for_stats_371:bigint, count_372:bigint, approx_distinct_373:HyperLogLog, $internal$sum_data_size_for_stats_374:bigint, $internal$max_data_size_for_stats_375:bigint, count_376:bigint, approx_distinct_377:HyperLogLog, $internal$sum_data_size_for_stats_378:bigint, $internal$max_data_size_for_stats_379:bigint, count_380:bigint, approx_distinct_381:HyperLogLog, $internal$sum_data_size_for_stats_382:bigint, $internal$max_data_size_for_stats_383:bigint, count_384:bigint, approx_distinct_385:HyperLogLog, $internal$sum_data_size_for_stats_386:bigint, $internal$max_data_size_for_stats_387:bigint, count_388:bigint, approx_distinct_389:HyperLogLog, $internal$sum_data_size_for_stats_390:bigint, $internal$max_data_size_for_stats_391:bigint, count_392:bigint, approx_distinct_393:HyperLogLog, $internal$sum_data_size_for_stats_394:bigint, $internal$max_data_size_for_stats_395:bigint, count_396:bigint, approx_distinct_397:HyperLogLog, $internal$sum_data_size_for_stats_398:bigint, $internal$max_data_size_for_stats_399:bigint, count_400:bigint, approx_distinct_401:HyperLogLog, $internal$sum_data_size_for_stats_402:bigint, $internal$max_data_size_for_stats_403:bigint, count_404:bigint, approx_distinct_405:HyperLogLog, $internal$sum_data_size_for_stats_406:bigint, $internal$max_data_size_for_stats_407:bigint, min_408:bigint, max_409:bigint, approx_distinct_410:HyperLogLog, count_411:bigint, min_412:bigint, max_413:bigint, approx_distinct_414:HyperLogLog, count_415:bigint, min_416:bigint, max_417:bigint, approx_distinct_418:HyperLogLog, count_419:bigint, min_420:bigint, max_421:bigint, approx_distinct_422:HyperLogLog, count_423:bigint, min_424:bigint, max_425:bigint, approx_distinct_426:HyperLogLog, count_427:bigint, min_428:bigint, max_429:bigint, approx_distinct_430:HyperLogLog, count_431:bigint, min_432:bigint, max_433:bigint, approx_distinct_434:HyperLogLog, count_435:bigint, min_436:bigint, max_437:bigint, approx_distinct_438:HyperLogLog, count_439:bigint, min_440:bigint, max_441:bigint, approx_distinct_442:HyperLogLog, count_443:bigint, min_444:double, max_445:double, approx_distinct_446:HyperLogLog, count_447:bigint, min_448:double, max_449:double, approx_distinct_450:HyperLogLog, count_451:bigint, min_452:double, max_453:double, approx_distinct_454:HyperLogLog, count_455:bigint, min_456:double, max_457:double, approx_distinct_458:HyperLogLog, count_459:bigint]
    │   flight.advertiser_name := advertiser_name_253
    │   activity.activity_name := max
    │   flight.campaign_name := campaign_name_252
    │   flight.flight_name := flight_name_250
    │   flight.flight_start_time_ctz := date_format$gid
    │   flight.flight_end_time_ctz := date_format$gid_309
    │   creative.creative_concept := creative_concept
    │   creative.creative_duration := duration
    │   creative.creative_name := creative_name_230
    │   creative.creative_size := creative_size
    │   fact_events2.device_os := device_os
    │   fact_events2.device_vendor := device_vendor
    │   fact_events2.device_type := device_type
    │   browser.browser := name_293
    │   exchange.exchange := name
    │   inventory_source.package := expr$gid
    │   inventory_source.deal := expr$gid_310
    │   fact_events2.app := app_name
    │   fact_events2.created_dt := date_format$gid_311
    │   fact_events2.week := date_format$gid_312
    │   fact_events2.campaign_total_actions := fact_events2.campaign_total_actions
    │   fact_events2.campaign_click_actions := fact_events2.campaign_click_actions
    │   fact_events2.campaign_view_actions := fact_events2.campaign_view_actions
    │   fact_events2.total_hh_conversions := approx_distinct
    │   fact_events2.click_hh_conversions := approx_distinct_315
    │   fact_events2.view_hh_conversions := approx_distinct_316
    │   fact_events2.total_id_conversions := approx_distinct_317
    │   fact_events2.click_id_conversions := approx_distinct_318
    │   fact_events2.view_id_conversions := approx_distinct_319
    │   fact_events2.campaign_click_pixel_trans_price := fact_events2.campaign_click_pixel_trans_price
    │   fact_events2.campaign_view_pixel_trans_price := fact_events2.campaign_view_pixel_trans_price
    │   fact_events2.campaign_total_pixel_trans_price := fact_events2.campaign_total_pixel_trans_price
    │   fact_events2.cpa := fact_events2.cpa
    │   Collected statistics:
    │   aggregations =>
    │       count[flight.advertiser_name] => [count := count("advertiser_name_253")]
    │       approx_distinct[flight.advertiser_name] => [approx_distinct_332 := approx_distinct("advertiser_name_253")]
    │       TOTAL_SIZE_IN_BYTES[flight.advertiser_name] => [$internal$sum_data_size_for_stats := $internal$sum_data_size_for_stats("advertiser_name_253")]
    │       MAX_VALUE_SIZE_IN_BYTES[flight.advertiser_name] => [$internal$max_data_size_for_stats := $internal$max_data_size_for_stats("advertiser_name_253")]
    │       count[activity.activity_name] => [count_333 := count("max")]
    │       approx_distinct[activity.activity_name] => [approx_distinct_334 := approx_distinct("max")]
    │       TOTAL_SIZE_IN_BYTES[activity.activity_name] => [$internal$sum_data_size_for_stats_335 := $internal$sum_data_size_for_stats("max")]
    │       MAX_VALUE_SIZE_IN_BYTES[activity.activity_name] => [$internal$max_data_size_for_stats_336 := $internal$max_data_size_for_stats("max")]
    │       count[flight.campaign_name] => [count_337 := count("campaign_name_252")]
    │       approx_distinct[flight.campaign_name] => [approx_distinct_338 := approx_distinct("campaign_name_252")]
    │       TOTAL_SIZE_IN_BYTES[flight.campaign_name] => [$internal$sum_data_size_for_stats_339 := $internal$sum_data_size_for_stats("campaign_name_252")]
    │       MAX_VALUE_SIZE_IN_BYTES[flight.campaign_name] => [$internal$max_data_size_for_stats_340 := $internal$max_data_size_for_stats("campaign_name_252")]
    │       count[flight.flight_name] => [count_341 := count("flight_name_250")]
    │       approx_distinct[flight.flight_name] => [approx_distinct_342 := approx_distinct("flight_name_250")]
    │       TOTAL_SIZE_IN_BYTES[flight.flight_name] => [$internal$sum_data_size_for_stats_343 := $internal$sum_data_size_for_stats("flight_name_250")]
    │       MAX_VALUE_SIZE_IN_BYTES[flight.flight_name] => [$internal$max_data_size_for_stats_344 := $internal$max_data_size_for_stats("flight_name_250")]
    │       count[flight.flight_start_time_ctz] => [count_345 := count("date_format$gid")]
    │       approx_distinct[flight.flight_start_time_ctz] => [approx_distinct_346 := approx_distinct("date_format$gid")]
    │       TOTAL_SIZE_IN_BYTES[flight.flight_start_time_ctz] => [$internal$sum_data_size_for_stats_347 := $internal$sum_data_size_for_stats("date_format$gid")]
    │       MAX_VALUE_SIZE_IN_BYTES[flight.flight_start_time_ctz] => [$internal$max_data_size_for_stats_348 := $internal$max_data_size_for_stats("date_format$gid")]
    │       count[flight.flight_end_time_ctz] => [count_349 := count("date_format$gid_309")]
    │       approx_distinct[flight.flight_end_time_ctz] => [approx_distinct_350 := approx_distinct("date_format$gid_309")]
    │       TOTAL_SIZE_IN_BYTES[flight.flight_end_time_ctz] => [$internal$sum_data_size_for_stats_351 := $internal$sum_data_size_for_stats("date_format$gid_309")]
    │       MAX_VALUE_SIZE_IN_BYTES[flight.flight_end_time_ctz] => [$internal$max_data_size_for_stats_352 := $internal$max_data_size_for_stats("date_format$gid_309")]
    │       count[creative.creative_concept] => [count_353 := count("creative_concept")]
    │       approx_distinct[creative.creative_concept] => [approx_distinct_354 := approx_distinct("creative_concept")]
    │       TOTAL_SIZE_IN_BYTES[creative.creative_concept] => [$internal$sum_data_size_for_stats_355 := $internal$sum_data_size_for_stats("creative_concept")]
    │       MAX_VALUE_SIZE_IN_BYTES[creative.creative_concept] => [$internal$max_data_size_for_stats_356 := $internal$max_data_size_for_stats("creative_concept")]
    │       min[creative.creative_duration] => [min := min("duration")]
    │       max[creative.creative_duration] => [max_357 := max("duration")]
    │       approx_distinct[creative.creative_duration] => [approx_distinct_358 := approx_distinct("duration")]
    │       count[creative.creative_duration] => [count_359 := count("duration")]
    │       count[creative.creative_name] => [count_360 := count("creative_name_230")]
    │       approx_distinct[creative.creative_name] => [approx_distinct_361 := approx_distinct("creative_name_230")]
    │       TOTAL_SIZE_IN_BYTES[creative.creative_name] => [$internal$sum_data_size_for_stats_362 := $internal$sum_data_size_for_stats("creative_name_230")]
    │       MAX_VALUE_SIZE_IN_BYTES[creative.creative_name] => [$internal$max_data_size_for_stats_363 := $internal$max_data_size_for_stats("creative_name_230")]
    │       count[creative.creative_size] => [count_364 := count("creative_size")]
    │       approx_distinct[creative.creative_size] => [approx_distinct_365 := approx_distinct("creative_size")]
    │       TOTAL_SIZE_IN_BYTES[creative.creative_size] => [$internal$sum_data_size_for_stats_366 := $internal$sum_data_size_for_stats("creative_size")]
    │       MAX_VALUE_SIZE_IN_BYTES[creative.creative_size] => [$internal$max_data_size_for_stats_367 := $internal$max_data_size_for_stats("creative_size")]
    │       count[fact_events2.device_os] => [count_368 := count("device_os")]
    │       approx_distinct[fact_events2.device_os] => [approx_distinct_369 := approx_distinct("device_os")]
    │       TOTAL_SIZE_IN_BYTES[fact_events2.device_os] => [$internal$sum_data_size_for_stats_370 := $internal$sum_data_size_for_stats("device_os")]
    │       MAX_VALUE_SIZE_IN_BYTES[fact_events2.device_os] => [$internal$max_data_size_for_stats_371 := $internal$max_data_size_for_stats("device_os")]
    │       count[fact_events2.device_vendor] => [count_372 := count("device_vendor")]
    │       approx_distinct[fact_events2.device_vendor] => [approx_distinct_373 := approx_distinct("device_vendor")]
    │       TOTAL_SIZE_IN_BYTES[fact_events2.device_vendor] => [$internal$sum_data_size_for_stats_374 := $internal$sum_data_size_for_stats("device_vendor")]
    │       MAX_VALUE_SIZE_IN_BYTES[fact_events2.device_vendor] => [$internal$max_data_size_for_stats_375 := $internal$max_data_size_for_stats("device_vendor")]
    │       count[fact_events2.device_type] => [count_376 := count("device_type")]
    │       approx_distinct[fact_events2.device_type] => [approx_distinct_377 := approx_distinct("device_type")]
    │       TOTAL_SIZE_IN_BYTES[fact_events2.device_type] => [$internal$sum_data_size_for_stats_378 := $internal$sum_data_size_for_stats("device_type")]
    │       MAX_VALUE_SIZE_IN_BYTES[fact_events2.device_type] => [$internal$max_data_size_for_stats_379 := $internal$max_data_size_for_stats("device_type")]
    │       count[browser.browser] => [count_380 := count("name_293")]
    │       approx_distinct[browser.browser] => [approx_distinct_381 := approx_distinct("name_293")]
    │       TOTAL_SIZE_IN_BYTES[browser.browser] => [$internal$sum_data_size_for_stats_382 := $internal$sum_data_size_for_stats("name_293")]
    │       MAX_VALUE_SIZE_IN_BYTES[browser.browser] => [$internal$max_data_size_for_stats_383 := $internal$max_data_size_for_stats("name_293")]
    │       count[exchange.exchange] => [count_384 := count("name")]
    │       approx_distinct[exchange.exchange] => [approx_distinct_385 := approx_distinct("name")]
    │       TOTAL_SIZE_IN_BYTES[exchange.exchange] => [$internal$sum_data_size_for_stats_386 := $internal$sum_data_size_for_stats("name")]
    │       MAX_VALUE_SIZE_IN_BYTES[exchange.exchange] => [$internal$max_data_size_for_stats_387 := $internal$max_data_size_for_stats("name")]
    │       count[inventory_source.package] => [count_388 := count("expr$gid")]
    │       approx_distinct[inventory_source.package] => [approx_distinct_389 := approx_distinct("expr$gid")]
    │       TOTAL_SIZE_IN_BYTES[inventory_source.package] => [$internal$sum_data_size_for_stats_390 := $internal$sum_data_size_for_stats("expr$gid")]
    │       MAX_VALUE_SIZE_IN_BYTES[inventory_source.package] => [$internal$max_data_size_for_stats_391 := $internal$max_data_size_for_stats("expr$gid")]
    │       count[inventory_source.deal] => [count_392 := count("expr$gid_310")]
    │       approx_distinct[inventory_source.deal] => [approx_distinct_393 := approx_distinct("expr$gid_310")]
    │       TOTAL_SIZE_IN_BYTES[inventory_source.deal] => [$internal$sum_data_size_for_stats_394 := $internal$sum_data_size_for_stats("expr$gid_310")]
    │       MAX_VALUE_SIZE_IN_BYTES[inventory_source.deal] => [$internal$max_data_size_for_stats_395 := $internal$max_data_size_for_stats("expr$gid_310")]
    │       count[fact_events2.app] => [count_396 := count("app_name")]
    │       approx_distinct[fact_events2.app] => [approx_distinct_397 := approx_distinct("app_name")]
    │       TOTAL_SIZE_IN_BYTES[fact_events2.app] => [$internal$sum_data_size_for_stats_398 := $internal$sum_data_size_for_stats("app_name")]
    │       MAX_VALUE_SIZE_IN_BYTES[fact_events2.app] => [$internal$max_data_size_for_stats_399 := $internal$max_data_size_for_stats("app_name")]
    │       count[fact_events2.created_dt] => [count_400 := count("date_format$gid_311")]
    │       approx_distinct[fact_events2.created_dt] => [approx_distinct_401 := approx_distinct("date_format$gid_311")]
    │       TOTAL_SIZE_IN_BYTES[fact_events2.created_dt] => [$internal$sum_data_size_for_stats_402 := $internal$sum_data_size_for_stats("date_format$gid_311")]
    │       MAX_VALUE_SIZE_IN_BYTES[fact_events2.created_dt] => [$internal$max_data_size_for_stats_403 := $internal$max_data_size_for_stats("date_format$gid_311")]
    │       count[fact_events2.week] => [count_404 := count("date_format$gid_312")]
    │       approx_distinct[fact_events2.week] => [approx_distinct_405 := approx_distinct("date_format$gid_312")]
    │       TOTAL_SIZE_IN_BYTES[fact_events2.week] => [$internal$sum_data_size_for_stats_406 := $internal$sum_data_size_for_stats("date_format$gid_312")]
    │       MAX_VALUE_SIZE_IN_BYTES[fact_events2.week] => [$internal$max_data_size_for_stats_407 := $internal$max_data_size_for_stats("date_format$gid_312")]
    │       min[fact_events2.campaign_total_actions] => [min_408 := min("fact_events2.campaign_total_actions")]
    │       max[fact_events2.campaign_total_actions] => [max_409 := max("fact_events2.campaign_total_actions")]
    │       approx_distinct[fact_events2.campaign_total_actions] => [approx_distinct_410 := approx_distinct("fact_events2.campaign_total_actions")]
    │       count[fact_events2.campaign_total_actions] => [count_411 := count("fact_events2.campaign_total_actions")]
    │       min[fact_events2.campaign_click_actions] => [min_412 := min("fact_events2.campaign_click_actions")]
    │       max[fact_events2.campaign_click_actions] => [max_413 := max("fact_events2.campaign_click_actions")]
    │       approx_distinct[fact_events2.campaign_click_actions] => [approx_distinct_414 := approx_distinct("fact_events2.campaign_click_actions")]
    │       count[fact_events2.campaign_click_actions] => [count_415 := count("fact_events2.campaign_click_actions")]
    │       min[fact_events2.campaign_view_actions] => [min_416 := min("fact_events2.campaign_view_actions")]
    │       max[fact_events2.campaign_view_actions] => [max_417 := max("fact_events2.campaign_view_actions")]
    │       approx_distinct[fact_events2.campaign_view_actions] => [approx_distinct_418 := approx_distinct("fact_events2.campaign_view_actions")]
    │       count[fact_events2.campaign_view_actions] => [count_419 := count("fact_events2.campaign_view_actions")]
    │       min[fact_events2.total_hh_conversions] => [min_420 := min("approx_distinct")]
    │       max[fact_events2.total_hh_conversions] => [max_421 := max("approx_distinct")]
    │       approx_distinct[fact_events2.total_hh_conversions] => [approx_distinct_422 := approx_distinct("approx_distinct")]
    │       count[fact_events2.total_hh_conversions] => [count_423 := count("approx_distinct")]
    │       min[fact_events2.click_hh_conversions] => [min_424 := min("approx_distinct_315")]
    │       max[fact_events2.click_hh_conversions] => [max_425 := max("approx_distinct_315")]
    │       approx_distinct[fact_events2.click_hh_conversions] => [approx_distinct_426 := approx_distinct("approx_distinct_315")]
    │       count[fact_events2.click_hh_conversions] => [count_427 := count("approx_distinct_315")]
    │       min[fact_events2.view_hh_conversions] => [min_428 := min("approx_distinct_316")]
    │       max[fact_events2.view_hh_conversions] => [max_429 := max("approx_distinct_316")]
    │       approx_distinct[fact_events2.view_hh_conversions] => [approx_distinct_430 := approx_distinct("approx_distinct_316")]
    │       count[fact_events2.view_hh_conversions] => [count_431 := count("approx_distinct_316")]
    │       min[fact_events2.total_id_conversions] => [min_432 := min("approx_distinct_317")]
    │       max[fact_events2.total_id_conversions] => [max_433 := max("approx_distinct_317")]
    │       approx_distinct[fact_events2.total_id_conversions] => [approx_distinct_434 := approx_distinct("approx_distinct_317")]
    │       count[fact_events2.total_id_conversions] => [count_435 := count("approx_distinct_317")]
    │       min[fact_events2.click_id_conversions] => [min_436 := min("approx_distinct_318")]
    │       max[fact_events2.click_id_conversions] => [max_437 := max("approx_distinct_318")]
    │       approx_distinct[fact_events2.click_id_conversions] => [approx_distinct_438 := approx_distinct("approx_distinct_318")]
    │       count[fact_events2.click_id_conversions] => [count_439 := count("approx_distinct_318")]
    │       min[fact_events2.view_id_conversions] => [min_440 := min("approx_distinct_319")]
    │       max[fact_events2.view_id_conversions] => [max_441 := max("approx_distinct_319")]
    │       approx_distinct[fact_events2.view_id_conversions] => [approx_distinct_442 := approx_distinct("approx_distinct_319")]
    │       count[fact_events2.view_id_conversions] => [count_443 := count("approx_distinct_319")]
    │       min[fact_events2.campaign_click_pixel_trans_price] => [min_444 := min("fact_events2.campaign_click_pixel_trans_price")]
    │       max[fact_events2.campaign_click_pixel_trans_price] => [max_445 := max("fact_events2.campaign_click_pixel_trans_price")]
    │       approx_distinct[fact_events2.campaign_click_pixel_trans_price] => [approx_distinct_446 := approx_distinct("fact_events2.campaign_click_pixel_trans_price")]
    │       count[fact_events2.campaign_click_pixel_trans_price] => [count_447 := count("fact_events2.campaign_click_pixel_trans_price")]
    │       min[fact_events2.campaign_view_pixel_trans_price] => [min_448 := min("fact_events2.campaign_view_pixel_trans_price")]
    │       max[fact_events2.campaign_view_pixel_trans_price] => [max_449 := max("fact_events2.campaign_view_pixel_trans_price")]
    │       approx_distinct[fact_events2.campaign_view_pixel_trans_price] => [approx_distinct_450 := approx_distinct("fact_events2.campaign_view_pixel_trans_price")]
    │       count[fact_events2.campaign_view_pixel_trans_price] => [count_451 := count("fact_events2.campaign_view_pixel_trans_price")]
    │       min[fact_events2.campaign_total_pixel_trans_price] => [min_452 := min("fact_events2.campaign_total_pixel_trans_price")]
    │       max[fact_events2.campaign_total_pixel_trans_price] => [max_453 := max("fact_events2.campaign_total_pixel_trans_price")]
    │       approx_distinct[fact_events2.campaign_total_pixel_trans_price] => [approx_distinct_454 := approx_distinct("fact_events2.campaign_total_pixel_trans_price")]
    │       count[fact_events2.campaign_total_pixel_trans_price] => [count_455 := count("fact_events2.campaign_total_pixel_trans_price")]
    │       min[fact_events2.cpa] => [min_456 := min("fact_events2.cpa")]
    │       max[fact_events2.cpa] => [max_457 := max("fact_events2.cpa")]
    │       approx_distinct[fact_events2.cpa] => [approx_distinct_458 := approx_distinct("fact_events2.cpa")]
    │       count[fact_events2.cpa] => [count_459 := count("fact_events2.cpa")]
    │       grouped by => []
    └─ LocalExchange[partitioning = ROUND_ROBIN (scale writers)]
       │   Layout: [campaign_name_252:varchar, fact_events2.cpa:double, flight_name_250:varchar, fact_events2.campaign_view_actions:bigint, max:varchar, fact_events2.campaign_total_actions:bigint, fact_events2.campaign_view_pixel_trans_price:double, date_format$gid_311:varchar, expr$gid_310:varchar, approx_distinct:bigint, creative_size:varchar, fact_events2.campaign_click_actions:bigint, app_name:varchar, expr$gid:varchar, creative_name_230:varchar, device_vendor:varchar, approx_distinct_319:bigint, fact_events2.campaign_total_pixel_trans_price:double, creative_concept:varchar, name_293:varchar, date_format$gid_312:varchar, approx_distinct_316:bigint, date_format$gid:varchar, approx_distinct_315:bigint, advertiser_name_253:varchar, device_os:varchar, name:varchar, duration:integer, device_type:varchar, approx_distinct_317:bigint, fact_events2.campaign_click_pixel_trans_price:double, date_format$gid_309:varchar, approx_distinct_318:bigint]
       │   Estimates: {rows: ? (?), cpu: ?, memory: 0B, network: 0B}
       └─ RemoteSource[sourceFragmentIds = [2]]
              Layout: [campaign_name_252:varchar, fact_events2.cpa:double, flight_name_250:varchar, fact_events2.campaign_view_actions:bigint, max:varchar, fact_events2.campaign_total_actions:bigint, fact_events2.campaign_view_pixel_trans_price:double, date_format$gid_311:varchar, expr$gid_310:varchar, approx_distinct:bigint, creative_size:varchar, fact_events2.campaign_click_actions:bigint, app_name:varchar, expr$gid:varchar, creative_name_230:varchar, device_vendor:varchar, approx_distinct_319:bigint, fact_events2.campaign_total_pixel_trans_price:double, creative_concept:varchar, name_293:varchar, date_format$gid_312:varchar, approx_distinct_316:bigint, date_format$gid:varchar, approx_distinct_315:bigint, advertiser_name_253:varchar, device_os:varchar, name:varchar, duration:integer, device_type:varchar, approx_distinct_317:bigint, fact_events2.campaign_click_pixel_trans_price:double, date_format$gid_309:varchar, approx_distinct_318:bigint]

Fragment 2 [HASH]
    Output layout: [campaign_name_252, fact_events2.cpa, flight_name_250, fact_events2.campaign_view_actions, max, fact_events2.campaign_total_actions, fact_events2.campaign_view_pixel_trans_price, date_format$gid_311, expr$gid_310, approx_distinct, creative_size, fact_events2.campaign_click_actions, app_name, expr$gid, creative_name_230, device_vendor, approx_distinct_319, fact_events2.campaign_total_pixel_trans_price, creative_concept, name_293, date_format$gid_312, approx_distinct_316, date_format$gid, approx_distinct_315, advertiser_name_253, device_os, name, duration, device_type, approx_distinct_317, fact_events2.campaign_click_pixel_trans_price, date_format$gid_309, approx_distinct_318]
    Output partitioning: ROUND_ROBIN (scale writers) []
    Project[]
    │   Layout: [campaign_name_252:varchar, fact_events2.cpa:double, flight_name_250:varchar, fact_events2.campaign_view_actions:bigint, max:varchar, fact_events2.campaign_total_actions:bigint, fact_events2.campaign_view_pixel_trans_price:double, date_format$gid_311:varchar, expr$gid_310:varchar, approx_distinct:bigint, creative_size:varchar, fact_events2.campaign_click_actions:bigint, app_name:varchar, expr$gid:varchar, creative_name_230:varchar, device_vendor:varchar, approx_distinct_319:bigint, fact_events2.campaign_total_pixel_trans_price:double, creative_concept:varchar, name_293:varchar, date_format$gid_312:varchar, approx_distinct_316:bigint, date_format$gid:varchar, approx_distinct_315:bigint, advertiser_name_253:varchar, device_os:varchar, name:varchar, duration:integer, device_type:varchar, approx_distinct_317:bigint, fact_events2.campaign_click_pixel_trans_price:double, date_format$gid_309:varchar, approx_distinct_318:bigint]
    │   Estimates: {rows: ? (?), cpu: ?, memory: 0B, network: 0B}
    │   fact_events2.cpa := (CASE COALESCE("sum_323", BIGINT '0') WHEN BIGINT '0' THEN 0E0 ELSE (round("sum_324", 5) / CAST(COALESCE("sum_323", BIGINT '0') AS double)) END)
    │   fact_events2.campaign_view_actions := COALESCE("sum_314", BIGINT '0')
    │   fact_events2.campaign_total_actions := COALESCE("sum", BIGINT '0')
    │   fact_events2.campaign_view_pixel_trans_price := COALESCE("sum_321", 0E0)
    │   fact_events2.campaign_click_actions := COALESCE("sum_313", BIGINT '0')
    │   fact_events2.campaign_total_pixel_trans_price := COALESCE("sum_322", 0E0)
    │   fact_events2.campaign_click_pixel_trans_price := COALESCE("sum_320", 0E0)
    └─ Aggregate[type = FINAL, keys = [advertiser_name_253, max, campaign_name_252, flight_name_250, creative_concept, duration, creative_name_230, creative_size, device_os, device_vendor, device_type, name_293, name, app_name, date_format$gid, date_format$gid_309, expr$gid, expr$gid_310, date_format$gid_311, date_format$gid_312]]
       │   Layout: [advertiser_name_253:varchar, max:varchar, campaign_name_252:varchar, flight_name_250:varchar, creative_concept:varchar, duration:integer, creative_name_230:varchar, creative_size:varchar, device_os:varchar, device_vendor:varchar, device_type:varchar, name_293:varchar, name:varchar, app_name:varchar, date_format$gid:varchar, date_format$gid_309:varchar, expr$gid:varchar, expr$gid_310:varchar, date_format$gid_311:varchar, date_format$gid_312:varchar, approx_distinct_316:bigint, sum_322:double, approx_distinct_317:bigint, sum_321:double, sum_320:double, approx_distinct_315:bigint, approx_distinct_318:bigint, approx_distinct_319:bigint, sum:bigint, approx_distinct:bigint, sum_314:bigint, sum_313:bigint, sum_324:double, sum_323:bigint]
       │   Estimates: {rows: ? (?), cpu: ?, memory: ?, network: 0B}
       │   approx_distinct_316 := approx_distinct("approx_distinct_465")
       │   sum_322 := sum("sum_471")
       │   approx_distinct_317 := approx_distinct("approx_distinct_466")
       │   sum_321 := sum("sum_470")
       │   sum_320 := sum("sum_469")
       │   approx_distinct_315 := approx_distinct("approx_distinct_464")
       │   approx_distinct_318 := approx_distinct("approx_distinct_467")
       │   approx_distinct_319 := approx_distinct("approx_distinct_468")
       │   sum := sum("sum_460")
       │   approx_distinct := approx_distinct("approx_distinct_463")
       │   sum_314 := sum("sum_462")
       │   sum_313 := sum("sum_461")
       │   sum_324 := sum("sum_473")
       │   sum_323 := sum("sum_472")
       └─ LocalExchange[partitioning = HASH, arguments = ["advertiser_name_253", "max", "campaign_name_252", "flight_name_250", "creative_concept", "duration", "creative_name_230", "creative_size", "device_os", "device_vendor", "device_type", "name_293", "name", "app_name", "date_format$gid", "date_format$gid_309", "expr$gid", "expr$gid_310", "date_format$gid_311", "date_format$gid_312"]]
          │   Layout: [advertiser_name_253:varchar, max:varchar, campaign_name_252:varchar, flight_name_250:varchar, creative_concept:varchar, duration:integer, creative_name_230:varchar, creative_size:varchar, device_os:varchar, device_vendor:varchar, device_type:varchar, name_293:varchar, name:varchar, app_name:varchar, date_format$gid:varchar, date_format$gid_309:varchar, expr$gid:varchar, expr$gid_310:varchar, date_format$gid_311:varchar, date_format$gid_312:varchar, approx_distinct_468:HyperLogLog, sum_462:row(bigint, bigint), sum_473:row(double, bigint), sum_461:row(bigint, bigint), sum_472:row(bigint, bigint), sum_460:row(bigint, bigint), sum_471:row(double, bigint), sum_470:row(double, bigint), approx_distinct_463:HyperLogLog, approx_distinct_466:HyperLogLog, approx_distinct_467:HyperLogLog, approx_distinct_464:HyperLogLog, approx_distinct_465:HyperLogLog, sum_469:row(double, bigint)]
          │   Estimates: {rows: ? (?), cpu: ?, memory: 0B, network: 0B}
          └─ RemoteSource[sourceFragmentIds = [3]]
                 Layout: [advertiser_name_253:varchar, max:varchar, campaign_name_252:varchar, flight_name_250:varchar, creative_concept:varchar, duration:integer, creative_name_230:varchar, creative_size:varchar, device_os:varchar, device_vendor:varchar, device_type:varchar, name_293:varchar, name:varchar, app_name:varchar, date_format$gid:varchar, date_format$gid_309:varchar, expr$gid:varchar, expr$gid_310:varchar, date_format$gid_311:varchar, date_format$gid_312:varchar, approx_distinct_468:HyperLogLog, sum_462:row(bigint, bigint), sum_473:row(double, bigint), sum_461:row(bigint, bigint), sum_472:row(bigint, bigint), sum_460:row(bigint, bigint), sum_471:row(double, bigint), sum_470:row(double, bigint), approx_distinct_463:HyperLogLog, approx_distinct_466:HyperLogLog, approx_distinct_467:HyperLogLog, approx_distinct_464:HyperLogLog, approx_distinct_465:HyperLogLog, sum_469:row(double, bigint)]

Fragment 3 [HASH]
    Output layout: [advertiser_name_253, max, campaign_name_252, flight_name_250, creative_concept, duration, creative_name_230, creative_size, device_os, device_vendor, device_type, name_293, name, app_name, date_format$gid, date_format$gid_309, expr$gid, expr$gid_310, date_format$gid_311, date_format$gid_312, approx_distinct_468, sum_462, sum_473, sum_461, sum_472, sum_460, sum_471, sum_470, approx_distinct_463, approx_distinct_466, approx_distinct_467, approx_distinct_464, approx_distinct_465, sum_469]
    Output partitioning: HASH [advertiser_name_253, max, campaign_name_252, flight_name_250, creative_concept, duration, creative_name_230, creative_size, device_os, device_vendor, device_type, name_293, name, app_name, date_format$gid, date_format$gid_309, expr$gid, expr$gid_310, date_format$gid_311, date_format$gid_312]
    Aggregate[type = PARTIAL, keys = [advertiser_name_253, max, campaign_name_252, flight_name_250, creative_concept, duration, creative_name_230, creative_size, device_os, device_vendor, device_type, name_293, name, app_name, date_format$gid, date_format$gid_309, expr$gid, expr$gid_310, date_format$gid_311, date_format$gid_312]]
    │   Layout: [advertiser_name_253:varchar, max:varchar, campaign_name_252:varchar, flight_name_250:varchar, creative_concept:varchar, duration:integer, creative_name_230:varchar, creative_size:varchar, device_os:varchar, device_vendor:varchar, device_type:varchar, name_293:varchar, name:varchar, app_name:varchar, date_format$gid:varchar, date_format$gid_309:varchar, expr$gid:varchar, expr$gid_310:varchar, date_format$gid_311:varchar, date_format$gid_312:varchar, approx_distinct_468:HyperLogLog, sum_462:row(bigint, bigint), sum_473:row(double, bigint), sum_461:row(bigint, bigint), sum_472:row(bigint, bigint), sum_460:row(bigint, bigint), sum_471:row(double, bigint), sum_470:row(double, bigint), approx_distinct_463:HyperLogLog, approx_distinct_466:HyperLogLog, approx_distinct_467:HyperLogLog, approx_distinct_464:HyperLogLog, approx_distinct_465:HyperLogLog, sum_469:row(double, bigint)]
    │   approx_distinct_468 := approx_distinct("view_id_conversion")
    │   sum_462 := sum("campaign_view_actions")
    │   sum_473 := sum("expr_302")
    │   sum_461 := sum("campaign_click_actions")
    │   sum_472 := sum("campaign_actions")
    │   sum_460 := sum("campaign_total_actions")
    │   sum_471 := sum("expr_301")
    │   sum_470 := sum("expr_300")
    │   approx_distinct_463 := approx_distinct("total_hh_conversion")
    │   approx_distinct_466 := approx_distinct("total_id_conversion")
    │   approx_distinct_467 := approx_distinct("click_id_conversion")
    │   approx_distinct_464 := approx_distinct("click_hh_conversion")
    │   approx_distinct_465 := approx_distinct("view_hh_conversion")
    │   sum_469 := sum("expr_299")
    └─ Project[]
       │   Layout: [device_vendor:varchar, name:varchar, device_type:varchar, campaign_click_actions:bigint, app_name:varchar, creative_size:varchar, creative_concept:varchar, view_hh_conversion:varchar, date_format$gid:varchar, click_id_conversion:varchar, device_os:varchar, expr_299:double, creative_name_230:varchar, campaign_actions:bigint, total_id_conversion:varchar, total_hh_conversion:varchar, click_hh_conversion:varchar, advertiser_name_253:varchar, expr$gid:varchar, view_id_conversion:varchar, expr$gid_310:varchar, date_format$gid_309:varchar, flight_name_250:varchar, campaign_total_actions:bigint, name_293:varchar, date_format$gid_311:varchar, campaign_view_actions:bigint, date_format$gid_312:varchar, expr_302:double, max:varchar, expr_301:double, expr_300:double, campaign_name_252:varchar, duration:integer]
       │   Estimates: {rows: ? (?), cpu: ?, memory: 0B, network: 0B}
       │   date_format$gid := date_format("flight_start_time_ctz", '%Y-%m-%d %T')
       │   expr_299 := (CASE "campaign_click_actions" WHEN BIGINT '1' THEN "pixel_transaction_price" ELSE 0E0 END)
       │   expr$gid := COALESCE((CASE WHEN (NOT ("package_name" IS NULL)) THEN "package_name" ELSE VARCHAR 'Not Applicable' END), VARCHAR 'Open Exchange')
       │   expr$gid_310 := COALESCE((CASE WHEN (NOT ("package_name" IS NULL)) THEN VARCHAR 'Not Applicable' ELSE "deal_name" END), VARCHAR 'Open Exchange')
       │   date_format$gid_309 := date_format("flight_end_time_ctz", '%Y-%m-%d %T')
       │   date_format$gid_311 := date_format(CAST("created_dt" AS timestamp(0)), '%Y-%m-%d')
       │   date_format$gid_312 := date_format(CAST(date_trunc('week', "created_dt") AS timestamp(0)), '%Y-%m-%d')
       │   expr_302 := ("total_spend" * CAST("exchange_rate" AS double))
       │   expr_301 := (CASE "campaign_total_actions" WHEN BIGINT '1' THEN "pixel_transaction_price" ELSE 0E0 END)
       │   expr_300 := (CASE "campaign_view_actions" WHEN BIGINT '1' THEN "pixel_transaction_price" ELSE 0E0 END)
       └─ LeftJoin[criteria = ("browser_uid" = "object_uid_291"), distribution = REPLICATED]
          │   Layout: [created_dt:date, device_os:varchar, device_vendor:varchar, device_type:varchar, app_name:varchar, exchange_rate:decimal(22,9), total_spend:double, campaign_actions:bigint, campaign_total_actions:bigint, campaign_click_actions:bigint, campaign_view_actions:bigint, total_hh_conversion:varchar, total_id_conversion:varchar, view_hh_conversion:varchar, view_id_conversion:varchar, click_hh_conversion:varchar, click_id_conversion:varchar, pixel_transaction_price:double, deal_name:varchar, package_name:varchar, creative_size:varchar, creative_concept:varchar, creative_name_230:varchar, duration:integer, max:varchar, advertiser_name_253:varchar, campaign_name_252:varchar, flight_name_250:varchar, flight_start_time_ctz:timestamp(3), flight_end_time_ctz:timestamp(3), name:varchar, name_293:varchar]
          │   Estimates: {rows: ? (?), cpu: ?, memory: 1.68kB, network: 0B}
          │   Distribution: REPLICATED
          ├─ LeftJoin[criteria = ("exchange_uid" = "object_uid"), distribution = REPLICATED]
          │  │   Layout: [created_dt:date, device_os:varchar, device_vendor:varchar, device_type:varchar, app_name:varchar, exchange_rate:decimal(22,9), total_spend:double, campaign_actions:bigint, campaign_total_actions:bigint, campaign_click_actions:bigint, campaign_view_actions:bigint, total_hh_conversion:varchar, total_id_conversion:varchar, view_hh_conversion:varchar, view_id_conversion:varchar, click_hh_conversion:varchar, click_id_conversion:varchar, browser_uid:varchar, pixel_transaction_price:double, deal_name:varchar, package_name:varchar, creative_size:varchar, creative_concept:varchar, creative_name_230:varchar, duration:integer, max:varchar, advertiser_name_253:varchar, campaign_name_252:varchar, flight_name_250:varchar, flight_start_time_ctz:timestamp(3), flight_end_time_ctz:timestamp(3), name:varchar]
          │  │   Estimates: {rows: ? (?), cpu: ?, memory: 25.52kB, network: 0B}
          │  │   Distribution: REPLICATED
          │  ├─ InnerJoin[criteria = ("flight_uid" = "flight_uid_263"), distribution = PARTITIONED]
          │  │  │   Layout: [created_dt:date, device_os:varchar, device_vendor:varchar, device_type:varchar, exchange_uid:varchar, app_name:varchar, exchange_rate:decimal(22,9), total_spend:double, campaign_actions:bigint, campaign_total_actions:bigint, campaign_click_actions:bigint, campaign_view_actions:bigint, total_hh_conversion:varchar, total_id_conversion:varchar, view_hh_conversion:varchar, view_id_conversion:varchar, click_hh_conversion:varchar, click_id_conversion:varchar, browser_uid:varchar, pixel_transaction_price:double, deal_name:varchar, package_name:varchar, creative_size:varchar, creative_concept:varchar, creative_name_230:varchar, duration:integer, max:varchar, flight_name_250:varchar, campaign_name_252:varchar, advertiser_name_253:varchar, flight_start_time_ctz:timestamp(3), flight_end_time_ctz:timestamp(3)]
          │  │  │   Estimates: {rows: ? (?), cpu: ?, memory: 156B, network: 0B}
          │  │  │   Distribution: PARTITIONED
          │  │  │   dynamicFilterAssignments = {flight_uid_263 -> #df_3219}
          │  │  ├─ RemoteSource[sourceFragmentIds = [4]]
          │  │  │      Layout: [created_dt:date, device_os:varchar, device_vendor:varchar, device_type:varchar, exchange_uid:varchar, app_name:varchar, flight_uid:varchar, exchange_rate:decimal(22,9), total_spend:double, campaign_actions:bigint, campaign_total_actions:bigint, campaign_click_actions:bigint, campaign_view_actions:bigint, total_hh_conversion:varchar, total_id_conversion:varchar, view_hh_conversion:varchar, view_id_conversion:varchar, click_hh_conversion:varchar, click_id_conversion:varchar, browser_uid:varchar, pixel_transaction_price:double, deal_name:varchar, package_name:varchar, creative_size:varchar, creative_concept:varchar, creative_name_230:varchar, duration:integer, max:varchar]
          │  │  └─ LocalExchange[partitioning = HASH, arguments = ["flight_uid_263"]]
          │  │     │   Layout: [flight_uid_263:varchar, flight_name_250:varchar, campaign_name_252:varchar, advertiser_name_253:varchar, flight_start_time_ctz:timestamp(3), flight_end_time_ctz:timestamp(3)]
          │  │     │   Estimates: {rows: 1 (156B), cpu: 156, memory: 0B, network: 0B}
          │  │     └─ InnerJoin[criteria = ("flight_uid_263" = "flight_uid_244"), distribution = PARTITIONED]
          │  │        │   Layout: [flight_uid_263:varchar, flight_name_250:varchar, campaign_name_252:varchar, advertiser_name_253:varchar, flight_start_time_ctz:timestamp(3), flight_end_time_ctz:timestamp(3)]
          │  │        │   Estimates: {rows: 1 (156B), cpu: 758, memory: 76B, network: 0B}
          │  │        │   Distribution: PARTITIONED
          │  │        │   dynamicFilterAssignments = {flight_uid_244 -> #df_3241}
          │  │        ├─ RemoteSource[sourceFragmentIds = [10]]
          │  │        │      Layout: [flight_uid_263:varchar]
          │  │        └─ LocalExchange[partitioning = SINGLE]
          │  │           │   Layout: [flight_uid_244:varchar, flight_name_250:varchar, campaign_name_252:varchar, advertiser_name_253:varchar, flight_start_time_ctz:timestamp(3), flight_end_time_ctz:timestamp(3)]
          │  │           │   Estimates: {rows: 0 (76B), cpu: 0, memory: 0B, network: 0B}
          │  │           └─ RemoteSource[sourceFragmentIds = [11]]
          │  │                  Layout: [flight_uid_244:varchar, flight_name_250:varchar, campaign_name_252:varchar, advertiser_name_253:varchar, flight_start_time_ctz:timestamp(3), flight_end_time_ctz:timestamp(3)]
          │  └─ LocalExchange[partitioning = SINGLE]
          │     │   Layout: [object_uid:varchar, name:varchar]
          │     │   Estimates: {rows: 150 (4.25kB), cpu: 0, memory: 0B, network: 0B}
          │     └─ RemoteSource[sourceFragmentIds = [12]]
          │            Layout: [object_uid:varchar, name:varchar]
          └─ LocalExchange[partitioning = SINGLE]
             │   Layout: [object_uid_291:varchar, name_293:varchar]
             │   Estimates: {rows: 10 (286B), cpu: 0, memory: 0B, network: 0B}
             └─ RemoteSource[sourceFragmentIds = [13]]
                    Layout: [object_uid_291:varchar, name_293:varchar]

Fragment 4 [SINGLE]
    Output layout: [created_dt, device_os, device_vendor, device_type, exchange_uid, app_name, flight_uid, exchange_rate, total_spend, campaign_actions, campaign_total_actions, campaign_click_actions, campaign_view_actions, total_hh_conversion, total_id_conversion, view_hh_conversion, view_id_conversion, click_hh_conversion, click_id_conversion, browser_uid, pixel_transaction_price, deal_name, package_name, creative_size, creative_concept, creative_name_230, duration, max]
    Output partitioning: HASH [flight_uid]
    InnerJoin[criteria = ("pixel_id" = "pixel_id_237"), distribution = REPLICATED]
    │   Layout: [created_dt:date, device_os:varchar, device_vendor:varchar, device_type:varchar, exchange_uid:varchar, app_name:varchar, flight_uid:varchar, exchange_rate:decimal(22,9), total_spend:double, campaign_actions:bigint, campaign_total_actions:bigint, campaign_click_actions:bigint, campaign_view_actions:bigint, total_hh_conversion:varchar, total_id_conversion:varchar, view_hh_conversion:varchar, view_id_conversion:varchar, click_hh_conversion:varchar, click_id_conversion:varchar, browser_uid:varchar, pixel_transaction_price:double, deal_name:varchar, package_name:varchar, creative_size:varchar, creative_concept:varchar, creative_name_230:varchar, duration:integer, max:varchar]
    │   Estimates: {rows: ? (?), cpu: ?, memory: 118B, network: 0B}
    │   Distribution: REPLICATED
    │   dynamicFilterAssignments = {pixel_id_237 -> #df_3220}
    ├─ LeftJoin[criteria = ("creative_uid" = "creative_uid_229"), distribution = REPLICATED]
    │  │   Layout: [created_dt:date, device_os:varchar, device_vendor:varchar, device_type:varchar, exchange_uid:varchar, app_name:varchar, flight_uid:varchar, exchange_rate:decimal(22,9), total_spend:double, campaign_actions:bigint, campaign_total_actions:bigint, campaign_click_actions:bigint, campaign_view_actions:bigint, total_hh_conversion:varchar, total_id_conversion:varchar, view_hh_conversion:varchar, view_id_conversion:varchar, click_hh_conversion:varchar, click_id_conversion:varchar, browser_uid:varchar, pixel_transaction_price:double, pixel_id:varchar, deal_name:varchar, package_name:varchar, creative_size:varchar, creative_concept:varchar, creative_name_230:varchar, duration:integer]
    │  │   Estimates: {rows: ? (?), cpu: ?, memory: 18.78kB, network: 0B}
    │  │   Distribution: REPLICATED
    │  ├─ LeftJoin[criteria = ("inventory_source_uid" = "inventory_source_uid_225"), distribution = REPLICATED]
    │  │  │   Layout: [created_dt:date, device_os:varchar, device_vendor:varchar, device_type:varchar, exchange_uid:varchar, app_name:varchar, flight_uid:varchar, creative_uid:varchar, exchange_rate:decimal(22,9), total_spend:double, campaign_actions:bigint, campaign_total_actions:bigint, campaign_click_actions:bigint, campaign_view_actions:bigint, total_hh_conversion:varchar, total_id_conversion:varchar, view_hh_conversion:varchar, view_id_conversion:varchar, click_hh_conversion:varchar, click_id_conversion:varchar, browser_uid:varchar, pixel_transaction_price:double, pixel_id:varchar, deal_name:varchar, package_name:varchar]
    │  │  │   Estimates: {rows: ? (?), cpu: ?, memory: 10.83MB, network: 0B}
    │  │  │   Distribution: REPLICATED
    │  │  ├─ LocalExchange[partitioning = ROUND_ROBIN]
    │  │  │  │   Layout: [created_dt:date, device_os:varchar, device_vendor:varchar, device_type:varchar, exchange_uid:varchar, inventory_source_uid:varchar, app_name:varchar, flight_uid:varchar, creative_uid:varchar, exchange_rate:decimal(22,9), total_spend:double, campaign_actions:bigint, campaign_total_actions:bigint, campaign_click_actions:bigint, campaign_view_actions:bigint, total_hh_conversion:varchar, total_id_conversion:varchar, view_hh_conversion:varchar, view_id_conversion:varchar, click_hh_conversion:varchar, click_id_conversion:varchar, browser_uid:varchar, pixel_transaction_price:double, pixel_id:varchar]
    │  │  │  │   Estimates: {rows: 82686464582 (71.89TB), cpu: 71.89T, memory: 0B, network: 0B}
    │  │  │  ├─ Project[]
    │  │  │  │  │   Layout: [inventory_source_uid_11:varchar, device_os_name:varchar, exchange_uid_6:varchar, flight_uid_1:varchar, creative_uid_5:varchar, created_dt_0:date, impression_device_type_name:varchar, expr_39:varchar, expr_29:double, browser_uid_16:varchar, expr_44:bigint, device_vendor_name:varchar, expr_27:decimal(22,9), expr_68:double, app_name_12:varchar]
    │  │  │  │  │   Estimates: {rows: 0 (0B), cpu: 0, memory: 0B, network: 0B}
    │  │  │  │  │   expr_39 := CAST(null AS varchar)
    │  │  │  │  │   expr_29 := COALESCE(("campaign_total_spend" / 1E6), 0E0)
    │  │  │  │  │   expr_44 := BIGINT '0'
    │  │  │  │  │   expr_27 := ("exchange_rate_22" * CAST(DECIMAL '1.0' AS decimal(2, 1)))
    │  │  │  │  │   expr_68 := 0E0
    │  │  │  │  └─ InnerJoin[criteria = ("created_dt_useast" = "expr") AND ("campaign_currency_uid_2" = "base_currency_uid"), distribution = REPLICATED]
    │  │  │  │     │   Layout: [created_dt_0:date, flight_uid_1:varchar, impression_device_type_name:varchar, device_os_name:varchar, device_vendor_name:varchar, creative_uid_5:varchar, exchange_uid_6:varchar, inventory_source_uid_11:varchar, app_name_12:varchar, campaign_total_spend:double, browser_uid_16:varchar, exchange_rate_22:decimal(20,8)]
    │  │  │  │     │   Estimates: {rows: 0 (0B), cpu: 0, memory: 0B, network: 0B}
    │  │  │  │     │   Distribution: REPLICATED
    │  │  │  │     ├─ LocalExchange[partitioning = ROUND_ROBIN]
    │  │  │  │     │  │   Layout: [created_dt_0:date, created_dt_useast:date, flight_uid_1:varchar, impression_device_type_name:varchar, campaign_currency_uid_2:varchar, device_os_name:varchar, device_vendor_name:varchar, creative_uid_5:varchar, exchange_uid_6:varchar, inventory_source_uid_11:varchar, app_name_12:varchar, campaign_total_spend:double, browser_uid_16:varchar]
    │  │  │  │     │  │   Estimates: {rows: 0 (0B), cpu: 0, memory: 0B, network: 0B}
    │  │  │  │     │  └─ Values[]
    │  │  │  │     │         Layout: [created_dt_0:date, created_dt_useast:date, flight_uid_1:varchar, impression_device_type_name:varchar, campaign_currency_uid_2:varchar, device_os_name:varchar, device_vendor_name:varchar, creative_uid_5:varchar, exchange_uid_6:varchar, inventory_source_uid_11:varchar, app_name_12:varchar, campaign_total_spend:double, browser_uid_16:varchar]
    │  │  │  │     │         Estimates: {rows: 0 (0B), cpu: 0, memory: 0B, network: 0B}
    │  │  │  │     └─ LocalExchange[partitioning = SINGLE]
    │  │  │  │        │   Layout: [exchange_rate_22:decimal(20,8), expr:date, base_currency_uid:varchar]
    │  │  │  │        │   Estimates: {rows: 0 (0B), cpu: 0, memory: 0B, network: 0B}
    │  │  │  │        └─ RemoteSource[sourceFragmentIds = [5]]
    │  │  │  │               Layout: [exchange_rate_22:decimal(20,8), expr:date, base_currency_uid:varchar]
    │  │  │  └─ Project[]
    │  │  │     │   Layout: [app_name_125:varchar, expr_208:varchar, exchange_uid_107:varchar, pixel_id_77:varchar, pixel_transaction_price_117:double, created_dt_69:date, device_os_name_97:varchar, expr_195:bigint, inventory_source_uid_114:varchar, browser_uid_155:varchar, expr_198:bigint, expr_197:bigint, expr_196:bigint, expr_203:varchar, creative_uid_105:varchar, impression_device_type_name_74:varchar, flight_uid_71:varchar, expr_218:double, expr_207:varchar, expr_217:decimal(22,9), expr_206:varchar, expr_205:varchar, device_vendor_name_102:varchar, expr_204:varchar]
    │  │  │     │   Estimates: {rows: 82686464582 (71.89TB), cpu: 71.89T, memory: 0B, network: 0B}
    │  │  │     │   expr_208 := (CASE WHEN "is_primary" THEN "click_id_conversion_141" END)
    │  │  │     │   expr_195 := (CASE WHEN "is_primary" THEN "campaign_actions_137" ELSE BIGINT '0' END)
    │  │  │     │   expr_198 := (CASE WHEN "is_primary" THEN "campaign_view_actions_132" ELSE BIGINT '0' END)
    │  │  │     │   expr_197 := (CASE WHEN "is_primary" THEN "campaign_click_actions_130" ELSE BIGINT '0' END)
    │  │  │     │   expr_196 := (CASE WHEN "is_primary" THEN "campaign_total_actions_128" ELSE BIGINT '0' END)
    │  │  │     │   expr_203 := (CASE WHEN "is_primary" THEN "total_hh_conversion_138" END)
    │  │  │     │   expr_218 := 0E0
    │  │  │     │   expr_207 := (CASE WHEN "is_primary" THEN "click_hh_conversion_140" END)
    │  │  │     │   expr_217 := CAST(DECIMAL '1.000000000' AS decimal(22, 9))
    │  │  │     │   expr_206 := (CASE WHEN "is_primary" THEN "view_id_conversion_143" END)
    │  │  │     │   expr_205 := (CASE WHEN "is_primary" THEN "view_hh_conversion_142" END)
    │  │  │     │   expr_204 := (CASE WHEN "is_primary" THEN "total_id_conversion_139" END)
    │  │  │     └─ ScanFilterProject[table = hive:ads:fact_adi_ump_attributions, filterPredicate = ("advertiser_uid_84" IN (VARCHAR '0D0MczW3s1', VARCHAR '0D1CZ6oTbs', VARCHAR '0DA9ZDUVaX', VARCHAR '0DFK5y2jQH', VARCHAR '0DGGQTJoLS', VARCHAR '0DHGhHhwwI', VARCHAR '0DJrxQOhe5', VARCHAR '0DK9ViWLDA', VARCHAR '0DL5pN9Qc0', VARCHAR '0DMz3PTTa7', VARCHAR '0DP6U5XSbo', VARCHAR '0DTYDU391t', VARCHAR '0DiN3xWr68', VARCHAR '0DirtE7nbo', VARCHAR '0DkLekwi6t', VARCHAR '0Dlz8Un0Da', VARCHAR '0DsSkM51Al', VARCHAR '0DwAKatm7q')), dynamicFilters = {"flight_uid_71" = #df_3219, "pixel_id_77" = #df_3220}]
    │  │  │            Layout: [created_dt_69:date, device_os_name_97:varchar, device_vendor_name_102:varchar, impression_device_type_name_74:varchar, exchange_uid_107:varchar, inventory_source_uid_114:varchar, app_name_125:varchar, flight_uid_71:varchar, creative_uid_105:varchar, is_primary:boolean, campaign_actions_137:bigint, campaign_total_actions_128:bigint, campaign_click_actions_130:bigint, campaign_view_actions_132:bigint, total_hh_conversion_138:varchar, total_id_conversion_139:varchar, view_hh_conversion_142:varchar, view_id_conversion_143:varchar, click_hh_conversion_140:varchar, click_id_conversion_141:varchar, browser_uid_155:varchar, pixel_transaction_price_117:double, pixel_id_77:varchar]
    │  │  │            Estimates: {rows: 91873849536 (77.88TB), cpu: 82.47T, memory: 0B, network: 0B}/{rows: 82686464582 (70.09TB), cpu: 82.47T, memory: 0B, network: 0B}/{rows: 82686464582 (70.09TB), cpu: 70.09T, memory: 0B, network: 0B}
    │  │  │            campaign_total_actions_128 := campaign_total_actions:bigint:REGULAR
    │  │  │            app_name_125 := app_name:string:REGULAR
    │  │  │            exchange_uid_107 := exchange_uid:string:REGULAR
    │  │  │            is_primary := is_primary:boolean:REGULAR
    │  │  │            campaign_actions_137 := campaign_actions:bigint:REGULAR
    │  │  │            campaign_view_actions_132 := campaign_view_actions:bigint:REGULAR
    │  │  │            pixel_id_77 := pixel_id:string:REGULAR
    │  │  │            pixel_transaction_price_117 := pixel_transaction_price:double:REGULAR
    │  │  │            view_hh_conversion_142 := view_hh_conversion:string:REGULAR
    │  │  │            created_dt_69 := created_dt:date:REGULAR
    │  │  │            device_os_name_97 := device_os_name:string:REGULAR
    │  │  │            click_id_conversion_141 := click_id_conversion:string:REGULAR
    │  │  │            advertiser_uid_84 := advertiser_uid:string:REGULAR
    │  │  │            inventory_source_uid_114 := inventory_source_uid:string:REGULAR
    │  │  │            campaign_click_actions_130 := campaign_click_actions:bigint:REGULAR
    │  │  │            browser_uid_155 := browser_uid:string:REGULAR
    │  │  │            view_id_conversion_143 := view_id_conversion:string:REGULAR
    │  │  │            total_id_conversion_139 := total_id_conversion:string:REGULAR
    │  │  │            creative_uid_105 := creative_uid:string:REGULAR
    │  │  │            click_hh_conversion_140 := click_hh_conversion:string:REGULAR
    │  │  │            flight_uid_71 := flight_uid:string:REGULAR
    │  │  │            impression_device_type_name_74 := impression_device_type_name:string:REGULAR
    │  │  │            total_hh_conversion_138 := total_hh_conversion:string:REGULAR
    │  │  │            device_vendor_name_102 := device_vendor_name:string:REGULAR
    │  │  │            date_key:string:PARTITION_KEY
    │  │  │                :: [[2024-01-01, 2024-04-11]]
    │  │  │            demand_system:string:PARTITION_KEY
    │  │  │                :: [[DSP]]
    │  │  │            conversion_source:string:PARTITION_KEY
    │  │  │                :: [[OV_PIXEL]]
    │  │  │            last_processed_filename:string:PARTITION_KEY
    │  │  │                :: [[2024-01-03-18-30-42, 2024-04-11-06-02-12]]
    │  │  └─ LocalExchange[partitioning = SINGLE]
    │  │     │   Layout: [inventory_source_uid_225:varchar, deal_name:varchar, package_name:varchar]
    │  │     │   Estimates: {rows: 28212 (1.80MB), cpu: 0, memory: 0B, network: 0B}
    │  │     └─ RemoteSource[sourceFragmentIds = [6]]
    │  │            Layout: [inventory_source_uid_225:varchar, deal_name:varchar, package_name:varchar]
    │  └─ LocalExchange[partitioning = SINGLE]
    │     │   Layout: [creative_uid_229:varchar, creative_size:varchar, creative_concept:varchar, creative_name_230:varchar, duration:integer]
    │     │   Estimates: {rows: 25 (3.13kB), cpu: 0, memory: 0B, network: 0B}
    │     └─ RemoteSource[sourceFragmentIds = [7]]
    │            Layout: [creative_uid_229:varchar, creative_size:varchar, creative_concept:varchar, creative_name_230:varchar, duration:integer]
    └─ LocalExchange[partitioning = SINGLE]
       │   Layout: [pixel_id_237:varchar, max:varchar]
       │   Estimates: {rows: 0 (20B), cpu: 0, memory: 0B, network: 0B}
       └─ RemoteSource[sourceFragmentIds = [8]]
              Layout: [pixel_id_237:varchar, max:varchar]

Fragment 5 [SINGLE]
    Output layout: [exchange_rate_22, expr, base_currency_uid]
    Output partitioning: BROADCAST []
    Project[]
    │   Layout: [exchange_rate_22:decimal(20,8), expr:date, base_currency_uid:varchar]
    │   Estimates: {rows: 0 (0B), cpu: 0, memory: 0B, network: 0B}
    │   expr := CAST("start_time_useast" AS date)
    └─ LocalExchange[partitioning = ROUND_ROBIN]
       │   Layout: [base_currency_uid:varchar, exchange_rate_22:decimal(20,8), start_time_useast:timestamp(3)]
       │   Estimates: {rows: 0 (0B), cpu: 0, memory: 0B, network: 0B}
       └─ Values[]
              Layout: [base_currency_uid:varchar, exchange_rate_22:decimal(20,8), start_time_useast:timestamp(3)]
              Estimates: {rows: 0 (0B), cpu: 0, memory: 0B, network: 0B}

Fragment 6 [SOURCE]
    Output layout: [inventory_source_uid_225, deal_name, package_name]
    Output partitioning: BROADCAST []
    TableScan[table = hive:stg_ads:dx_druid_inventory_source]
        Layout: [inventory_source_uid_225:varchar, deal_name:varchar, package_name:varchar]
        Estimates: {rows: 28212 (1.80MB), cpu: 1.80M, memory: 0B, network: 0B}
        inventory_source_uid_225 := inventory_source_uid:string:REGULAR
        deal_name := deal_name:string:REGULAR
        package_name := package_name:string:REGULAR

Fragment 7 [SOURCE]
    Output layout: [creative_uid_229, creative_size, creative_concept, creative_name_230, duration]
    Output partitioning: BROADCAST []
    ScanFilterProject[table = hive:stg_ads:dx_druid_creative, filterPredicate = (("advertiser_uid_231" IN (VARCHAR '0D0MczW3s1', VARCHAR '0D1CZ6oTbs', VARCHAR '0DA9ZDUVaX', VARCHAR '0DFK5y2jQH', VARCHAR '0DGGQTJoLS', VARCHAR '0DHGhHhwwI', VARCHAR '0DJrxQOhe5', VARCHAR '0DK9ViWLDA', VARCHAR '0DL5pN9Qc0', VARCHAR '0DMz3PTTa7', VARCHAR '0DP6U5XSbo', VARCHAR '0DTYDU391t', VARCHAR '0DiN3xWr68', VARCHAR '0DirtE7nbo', VARCHAR '0DkLekwi6t', VARCHAR '0Dlz8Un0Da', VARCHAR '0DsSkM51Al', VARCHAR '0DwAKatm7q')) AND ("agency_uid_232" = VARCHAR '0NEQOSyJpk'))]
        Layout: [creative_uid_229:varchar, creative_size:varchar, creative_concept:varchar, creative_name_230:varchar, duration:integer]
        Estimates: {rows: 449598 (55.31MB), cpu: 68.17M, memory: 0B, network: 0B}/{rows: 25 (3.13kB), cpu: 68.17M, memory: 0B, network: 0B}/{rows: 25 (3.13kB), cpu: 3.13k, memory: 0B, network: 0B}
        duration := duration:int:REGULAR
        creative_concept := creative_concept:string:REGULAR
        creative_name_230 := creative_name:string:REGULAR
        agency_uid_232 := agency_uid:string:REGULAR
        creative_uid_229 := creative_uid:string:REGULAR
        advertiser_uid_231 := advertiser_uid:string:REGULAR
        creative_size := creative_size:string:REGULAR

Fragment 8 [HASH]
    Output layout: [pixel_id_237, max]
    Output partitioning: BROADCAST []
    Filter[filterPredicate = (NOT ("max" IS NULL))]
    │   Layout: [pixel_id_237:varchar, max:varchar]
    │   Estimates: {rows: 0 (20B), cpu: 22, memory: 0B, network: 0B}
    └─ Aggregate[type = FINAL, keys = [pixel_id_237]]
       │   Layout: [pixel_id_237:varchar, max:varchar]
       │   Estimates: {rows: 0 (22B), cpu: 22, memory: 22B, network: 0B}
       │   max := max("max_474")
       └─ LocalExchange[partitioning = HASH, arguments = ["pixel_id_237"]]
          │   Layout: [pixel_id_237:varchar, max_474:varchar]
          │   Estimates: {rows: 0 (22B), cpu: 22, memory: 0B, network: 0B}
          └─ RemoteSource[sourceFragmentIds = [9]]
                 Layout: [pixel_id_237:varchar, max_474:varchar]

Fragment 9 [SOURCE]
    Output layout: [pixel_id_237, max_474]
    Output partitioning: HASH [pixel_id_237]
    Aggregate[type = PARTIAL, keys = [pixel_id_237]]
    │   Layout: [pixel_id_237:varchar, max_474:varchar]
    │   Estimates: {rows: 0 (22B), cpu: ?, memory: ?, network: ?}
    │   max_474 := max("activity_name")
    └─ ScanFilterProject[table = hive:stg_ads:dx_druid_activity, filterPredicate = (("advertiser_uid_238" IN (VARCHAR '0D0MczW3s1', VARCHAR '0D1CZ6oTbs', VARCHAR '0DA9ZDUVaX', VARCHAR '0DFK5y2jQH', VARCHAR '0DGGQTJoLS', VARCHAR '0DHGhHhwwI', VARCHAR '0DJrxQOhe5', VARCHAR '0DK9ViWLDA', VARCHAR '0DL5pN9Qc0', VARCHAR '0DMz3PTTa7', VARCHAR '0DP6U5XSbo', VARCHAR '0DTYDU391t', VARCHAR '0DiN3xWr68', VARCHAR '0DirtE7nbo', VARCHAR '0DkLekwi6t', VARCHAR '0Dlz8Un0Da', VARCHAR '0DsSkM51Al', VARCHAR '0DwAKatm7q')) AND ("agency_uid_239" = VARCHAR '0NEQOSyJpk'))]
           Layout: [pixel_id_237:varchar, activity_name:varchar]
           Estimates: {rows: 44746 (3.19MB), cpu: 4.47M, memory: 0B, network: 0B}/{rows: 0 (18B), cpu: 4.47M, memory: 0B, network: 0B}/{rows: 0 (18B), cpu: 18, memory: 0B, network: 0B}
           pixel_id_237 := pixel_id:string:REGULAR
           activity_name := activity_name:string:REGULAR
           agency_uid_239 := agency_uid:string:REGULAR
           advertiser_uid_238 := advertiser_uid:string:REGULAR

Fragment 10 [SOURCE]
    Output layout: [flight_uid_263]
    Output partitioning: HASH [flight_uid_263]
    ScanFilterProject[table = hive:stg_ads:dx_druid_flight_exchange_rate, filterPredicate = (("agency_uid_265" = VARCHAR '0NEQOSyJpk') AND ("target_currency_uid" = VARCHAR 'USD') AND ("advertiser_uid_264" IN (VARCHAR '0D0MczW3s1', VARCHAR '0D1CZ6oTbs', VARCHAR '0DA9ZDUVaX', VARCHAR '0DFK5y2jQH', VARCHAR '0DGGQTJoLS', VARCHAR '0DHGhHhwwI', VARCHAR '0DJrxQOhe5', VARCHAR '0DK9ViWLDA', VARCHAR '0DL5pN9Qc0', VARCHAR '0DMz3PTTa7', VARCHAR '0DP6U5XSbo', VARCHAR '0DTYDU391t', VARCHAR '0DiN3xWr68', VARCHAR '0DirtE7nbo', VARCHAR '0DkLekwi6t', VARCHAR '0Dlz8Un0Da', VARCHAR '0DsSkM51Al', VARCHAR '0DwAKatm7q'))), dynamicFilters = {"flight_uid_263" = #df_3241}]
        Layout: [flight_uid_263:varchar]
        Estimates: {rows: 5258332 (75.22MB), cpu: 265.77M, memory: 0B, network: 0B}/{rows: 35 (526B), cpu: 265.77M, memory: 0B, network: 0B}/{rows: 35 (526B), cpu: 526, memory: 0B, network: 0B}
        target_currency_uid := target_currency_uid:string:REGULAR
        flight_uid_263 := flight_uid:string:REGULAR
        agency_uid_265 := agency_uid:string:REGULAR
        advertiser_uid_264 := advertiser_uid:string:REGULAR

Fragment 11 [SOURCE]
    Output layout: [flight_uid_244, flight_name_250, campaign_name_252, advertiser_name_253, flight_start_time_ctz, flight_end_time_ctz]
    Output partitioning: HASH [flight_uid_244]
    ScanFilterProject[table = hive:stg_ads:dx_druid_flight, filterPredicate = (("agency_uid_248" = VARCHAR '0NEQOSyJpk') AND ("advertiser_uid_247" IN (VARCHAR '0D0MczW3s1', VARCHAR '0D1CZ6oTbs', VARCHAR '0DA9ZDUVaX', VARCHAR '0DFK5y2jQH', VARCHAR '0DGGQTJoLS', VARCHAR '0DHGhHhwwI', VARCHAR '0DJrxQOhe5', VARCHAR '0DK9ViWLDA', VARCHAR '0DL5pN9Qc0', VARCHAR '0DMz3PTTa7', VARCHAR '0DP6U5XSbo', VARCHAR '0DTYDU391t', VARCHAR '0DiN3xWr68', VARCHAR '0DirtE7nbo', VARCHAR '0DkLekwi6t', VARCHAR '0Dlz8Un0Da', VARCHAR '0DsSkM51Al', VARCHAR '0DwAKatm7q')))]
        Layout: [flight_uid_244:varchar, flight_name_250:varchar, campaign_name_252:varchar, advertiser_name_253:varchar, flight_start_time_ctz:timestamp(3), flight_end_time_ctz:timestamp(3)]
        Estimates: {rows: 104383 (15.48MB), cpu: 18.48M, memory: 0B, network: 0B}/{rows: 0 (76B), cpu: 18.48M, memory: 0B, network: 0B}/{rows: 0 (76B), cpu: 76, memory: 0B, network: 0B}
        agency_uid_248 := agency_uid:string:REGULAR
        advertiser_name_253 := advertiser_name:string:REGULAR
        advertiser_uid_247 := advertiser_uid:string:REGULAR
        flight_uid_244 := flight_uid:string:REGULAR
        flight_end_time_ctz := flight_end_time_ctz:timestamp:REGULAR
        campaign_name_252 := campaign_name:string:REGULAR
        flight_start_time_ctz := flight_start_time_ctz:timestamp:REGULAR
        flight_name_250 := flight_name:string:REGULAR

Fragment 12 [SOURCE]
    Output layout: [object_uid, name]
    Output partitioning: BROADCAST []
    TableScan[table = hive:dsp_default:dx_exchange]
        Layout: [object_uid:varchar, name:varchar]
        Estimates: {rows: 150 (4.25kB), cpu: 4.25k, memory: 0B, network: 0B}
        name := name:string:REGULAR
        object_uid := object_uid:string:REGULAR

Fragment 13 [SOURCE]
    Output layout: [object_uid_291, name_293]
    Output partitioning: BROADCAST []
    TableScan[table = hive:dsp_default:dx_device_browsers]
        Layout: [object_uid_291:varchar, name_293:varchar]
        Estimates: {rows: 10 (286B), cpu: 286, memory: 0B, network: 0B}
        name_293 := name:string:REGULAR
        object_uid_291 := object_uid:string:REGULAR
sdas987 commented 4 months ago

@chenjian2664 , updated the initial description. If I change to PARTITIONED I do not see the issue but changing to partittioned will hurt the query performance right

chenjian2664 commented 4 months ago

@sdas987 The explain result are too complex to me... Could you provide the minimal reproduce steps with the error stack trace, you can find it on the UI

sdas987 commented 4 months ago

We are seeing this issue in a CTAS query when trying to produce aggregated metrics starting from a fact table and left joining to some dimension tables. I think the dimension tables are being broadcasted due to CBO and that is when this issue is encountered

Stacktrace java.lang.IllegalArgumentException: No catalog handle for partitioning handle: SINGLE at com.google.common.base.Preconditions.checkArgument(Preconditions.java:218) at io.trino.execution.scheduler.PipelinedQueryScheduler$DistributedStagesScheduler.createStageScheduler(PipelinedQueryScheduler.java:1131) at io.trino.execution.scheduler.PipelinedQueryScheduler$DistributedStagesScheduler.create(PipelinedQueryScheduler.java:911) at io.trino.execution.scheduler.PipelinedQueryScheduler.createDistributedStagesScheduler(PipelinedQueryScheduler.java:312) at io.trino.execution.scheduler.PipelinedQueryScheduler.start(PipelinedQueryScheduler.java:293) at io.trino.execution.SqlQueryExecution.start(SqlQueryExecution.java:426) at io.trino.execution.SqlQueryManager.createQuery(SqlQueryManager.java:256) at io.trino.dispatcher.LocalDispatchQuery.startExecution(LocalDispatchQuery.java:145) at io.trino.dispatcher.LocalDispatchQuery.lambda$waitForMinimumWorkers$2(LocalDispatchQuery.java:129) at io.airlift.concurrent.MoreFutures.lambda$addSuccessCallback$12(MoreFutures.java:568) at io.airlift.concurrent.MoreFutures$3.onSuccess(MoreFutures.java:543) at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1133) at io.trino.$gen.Trino_428____20240410_221455_2.run(Unknown Source) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:840)

sdas987 commented 4 months ago

@chenjian2664 any insights into what might be causing this issue, thanks

chenjian2664 commented 4 months ago

cc @ebyhr @hashhar

hashhar commented 4 months ago

cc: @sopel39 / @raunaqmorarka might be better suited to look at this.

sdas987 commented 4 months ago

Just a small update, we tried this on version 430 as well. Saw the same issue.

sopel39 commented 4 months ago

@sdas987 Was it working before 428?

sdas987 commented 4 months ago

@sopel39 yes it works for v378.

sopel39 commented 4 months ago

Could be related to https://github.com/trinodb/trino/pull/12257 cc @lukasz-stec

sopel39 commented 4 months ago

@sdas987 Could you try set session join_partitioned_build_min_row_count=0 and see if it works then?

sdas987 commented 4 months ago

@sopel39 tried setting the session variable join_partitioned_build_min_row_count=0. Still getting the same error.

sopel39 commented 4 months ago

The issue is with Fragment 4 [SINGLE]. It contains empty values plan node:

    │  │  │  │     │  └─ Values[]
    │  │  │  │     │         Layout: [created_dt_0:date, created_dt_useast:date, flight_uid_1:varchar, impression_device_type_name:varchar, campaign_currency_uid_2:varchar, device_os_name:varchar, device_vendor_name:varchar, creative_uid_5:varchar, exchange_uid_6:varchar, inventory_source_uid_11:varchar, app_name_12:varchar, campaign_total_spend:double, browser_uid_16:varchar]
    │  │  │  │     │         Estimates: {rows: 0 (0B), cpu: 0, memory: 0B, network: 0B}

This bug was supposed to be fixed by https://github.com/trinodb/trino/commit/8024d3015523b4da04e721934ead72dfc4a1a5a5, but I think

            if (... || !context.get().hasDistribution()) {

is still making SINGLE distribution in source stage because Values node is visited before table scan

sdas987 commented 4 months ago

Hi @sopel39 , thank you for the update. Do we know when a patch can be applied for this bug.

sopel39 commented 4 months ago

Hi @sopel39 , thank you for the update. Do we know when a patch can be applied for this bug.

I don't have an estimate yet. Would you like to fix it maybe?