fix: preserve broadcast build-side fetch - #618
Conversation
|
CI is awaiting maintainer approval for this external-contributor workflow. The regression is reproduced on current |
|
@shinzoxD it seems like the test might be a bit flaky? |
|
@gabotechs: It looks like this change might violate the conditions that @barbarj was planning to validate:
|
)": see datafusion-contrib#618 (comment) This reverts commit 2dc7a36.
|
@stuhood 🤔 but is that a problem? without fetch propagation there the query is incorrect. I see this code handles it gracefully: datafusion-distributed/src/distributed_planner/normalize_collect_joins.rs Lines 175 to 186 in e2b6094 And tests are green. Although I wonder if it would be better to propagate the |
This looks like the same problem the other fetch-preserving test had. Which row survives is not deterministic, so you need to just assert row counts instead. |
@gabotechs |
|
@barbarj yeah, indeed it doesn't. |
|
Thanks — I don't think this failure is only nondeterministic row selection. This test already selects The fixture has 100 unique build IDs and exactly 50 probe rows for every ID. Any valid This suggests the fetch moved above |
|
Thanks for confirming. The focused follow-up is #624. It retains a fetch-bearing |
Summary
fetchvalue when replacing a build-sideCoalescePartitionsExecduring broadcast insertionTesting
cargo test --features integration --test multi_task_collect_join_repros(8 passed, 2 ignored)cargo test distributed_planner::insert_broadcast::tests --lib(7 passed)cargo test distributed_planner::normalize_collect_joins::tests --lib(7 passed)cargo test --features integration --lib -- --skip protocol::grpc::channel_resolver::tests::fails_establishing_connection(288 passed, 1 ignored, 1 filtered)cargo fmt --all -- --checkcargo check --libcargo clippy --lib -- -D warningsgit diff --checkCloses #591
Assisted-by: OpenAI Codex