Skip to content

Dict: gather dictionary values straight into a VarBinBuilder - #9098

Draft
robert3005 wants to merge 1 commit into
rk/fsst-decode-into-builderfrom
rk/dict-gather-into-builder
Draft

Dict: gather dictionary values straight into a VarBinBuilder#9098
robert3005 wants to merge 1 commit into
rk/fsst-decode-into-builderfrom
rk/dict-gather-into-builder

Conversation

@robert3005

Copy link
Copy Markdown
Contributor

Rationale for this change

  • Closes: #000

What changes are included in this PR?

What APIs are changed? Are there any user-facing changes?

Appending a string dictionary to a builder went through `take_canonical`,
which first materializes the values at full logical length — allocating and
re-reading a views buffer proportional to the row count. The dictionary is
usually far smaller than the column, so resolving each code against it in place
skips that intermediate and leaves one `memcpy` per row.

The fast path indexes the codes and the dictionary's views and data buffers as
host slices, so `varbin_fast_path_is_host` gates it on residency; a
device-resident dictionary still takes the canonical route, where a device
kernel can serve it.

Signed-off-by: Robert Kruszewski <robert@spiraldb.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