Skip to content

Top-N: Perform global boundary checking before doing sort-key conversion#15087

Merged
Mytherin merged 2 commits intoduckdb:mainfrom
Mytherin:topnsortkey
Dec 2, 2024
Merged

Top-N: Perform global boundary checking before doing sort-key conversion#15087
Mytherin merged 2 commits intoduckdb:mainfrom
Mytherin:topnsortkey

Conversation

@Mytherin
Copy link
Copy Markdown
Collaborator

@Mytherin Mytherin commented Dec 2, 2024

This PR is essentially a partial revert of #14424 - that fixes a performance regression that was caused by the Top-N operator doing the global boundary checking after constructing the sort key, instead of before. This meant that, even for rows where we would be certain they would not be added to the heap, we would be constructing sort keys. This PR brings back the old code that allows the boundary values to be checked directly on the sort keys. In order to facilitate this, we deserialize the global boundary value (stored as a sort key) back into a DataChunk that can be compared against directly.

@Mytherin Mytherin merged commit 6064047 into duckdb:main Dec 2, 2024
@Mytherin Mytherin deleted the topnsortkey branch December 8, 2024 06:50
krlmlr added a commit to duckdb/duckdb-r that referenced this pull request Dec 27, 2024
Top-N: Perform global boundary checking before doing sort-key conversion (duckdb/duckdb#15087)
Allow inputting a base hash in Regression workflow (duckdb/duckdb#15082)
Avoid building for Python 3.7 on Windows (duckdb/duckdb#15085)
krlmlr added a commit to duckdb/duckdb-r that referenced this pull request Dec 27, 2024
Top-N: Perform global boundary checking before doing sort-key conversion (duckdb/duckdb#15087)
Allow inputting a base hash in Regression workflow (duckdb/duckdb#15082)
Avoid building for Python 3.7 on Windows (duckdb/duckdb#15085)
krlmlr added a commit to duckdb/duckdb-r that referenced this pull request Dec 27, 2024
Top-N: Perform global boundary checking before doing sort-key conversion (duckdb/duckdb#15087)
Allow inputting a base hash in Regression workflow (duckdb/duckdb#15082)
Avoid building for Python 3.7 on Windows (duckdb/duckdb#15085)
github-actions bot pushed a commit to duckdb/duckdb-r that referenced this pull request Dec 28, 2024
Top-N: Perform global boundary checking before doing sort-key conversion (duckdb/duckdb#15087)
Allow inputting a base hash in Regression workflow (duckdb/duckdb#15082)
Avoid building for Python 3.7 on Windows (duckdb/duckdb#15085)
github-actions bot added a commit to duckdb/duckdb-r that referenced this pull request Dec 28, 2024
Top-N: Perform global boundary checking before doing sort-key conversion (duckdb/duckdb#15087)
Allow inputting a base hash in Regression workflow (duckdb/duckdb#15082)
Avoid building for Python 3.7 on Windows (duckdb/duckdb#15085)

Co-authored-by: krlmlr <krlmlr@users.noreply.github.com>
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