Skip to content

Use regular pushdown path for semi/anti/left delim joins - #21416

Merged
Mytherin merged 1 commit into
duckdb:v1.5-variegatafrom
Mytherin:pushintodelimjoins
Mar 17, 2026
Merged

Mytherin merged 1 commit into
duckdb:v1.5-variegatafrom
Mytherin:pushintodelimjoins

Conversation

@Mytherin

Copy link
Copy Markdown
Collaborator

Fixes #21407

#19152 introduces a special join filter pushdown optimizer for duplicate-eliminated joins, but this is not required for LEFT / SEMI / ANTI joins. We can use the regular join filter pushdown code for those joins. It is only required for INNER joins (currently) because the filter pushdown code for inner joins works by generating a cross product and using the cross product filter pushdown code. This then loses the delim join information which causes the plan to be incorrect.

@Mytherin
Mytherin merged commit 5467da5 into duckdb:v1.5-variegata Mar 17, 2026
67 of 68 checks passed
github-actions Bot pushed a commit to duckdb/duckdb-r that referenced this pull request Mar 19, 2026
Date: 2026-03-17 18:11:20 +0100

Use regular pushdown path for semi/anti/left delim joins (duckdb/duckdb#21416)
Fix invalid common subplan CTE reuse for issue duckdb/duckdb#21372 (duckdb/duckdb#21386)
github-actions Bot added a commit to duckdb/duckdb-r that referenced this pull request Mar 19, 2026
Date: 2026-03-17 18:11:20 +0100

Use regular pushdown path for semi/anti/left delim joins (duckdb/duckdb#21416)
Fix invalid common subplan CTE reuse for issue duckdb/duckdb#21372 (duckdb/duckdb#21386)

Co-authored-by: krlmlr <krlmlr@users.noreply.github.com>
krlmlr added a commit to duckdb/duckdb-r that referenced this pull request Mar 22, 2026
Date: 2026-03-17 18:11:20 +0100

Use regular pushdown path for semi/anti/left delim joins (duckdb/duckdb#21416)
Fix invalid common subplan CTE reuse for issue duckdb/duckdb#21372 (duckdb/duckdb#21386)

Co-authored-by: krlmlr <krlmlr@users.noreply.github.com>
krlmlr added a commit to krlmlr/duckdb-r-old that referenced this pull request Mar 22, 2026
Date: 2026-03-17 18:11:20 +0100

Use regular pushdown path for semi/anti/left delim joins (duckdb/duckdb#21416)
Fix invalid common subplan CTE reuse for issue duckdb/duckdb#21372 (duckdb/duckdb#21386)

Co-authored-by: krlmlr <krlmlr@users.noreply.github.com>
krlmlr added a commit to krlmlr/duckdb-r-old that referenced this pull request Mar 22, 2026
Date: 2026-03-17 18:11:20 +0100

Use regular pushdown path for semi/anti/left delim joins (duckdb/duckdb#21416)
Fix invalid common subplan CTE reuse for issue duckdb/duckdb#21372 (duckdb/duckdb#21386)

Co-authored-by: krlmlr <krlmlr@users.noreply.github.com>
@Mytherin
Mytherin deleted the pushintodelimjoins branch April 28, 2026 07:50
kaka11chen pushed a commit to AstroVela/vane that referenced this pull request Aug 14, 2026
…db#21416)

Fixes duckdb/duckdb#21407 

duckdb/duckdb#19152 introduces a special join
filter pushdown optimizer for duplicate-eliminated joins, but this is
not required for `LEFT / SEMI / ANTI` joins. We can use the regular join
filter pushdown code for those joins. It is only required for `INNER`
joins (currently) because the filter pushdown code for inner joins works
by generating a cross product and using the cross product filter
pushdown code. This then loses the delim join information which causes
the plan to be incorrect.

Upstream-Commit: duckdb/duckdb@5467da5
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant