Skip to content

Vendor dependencies for the vortex crate v0.84.0 - #79

Merged
alexey-milovidov merged 3 commits into
mainfrom
vortex-0.84
Aug 22, 2026
Merged

Vendor dependencies for the vortex crate v0.84.0#79
alexey-milovidov merged 3 commits into
mainfrom
vortex-0.84

Conversation

@alexey-milovidov

Copy link
Copy Markdown
Member

Bumps the vendored vortex crates from 0.83.0 to 0.84.0 for ClickHouse/ClickHouse#112950.

0.84.0 carries vortex-data/vortex#9271, which stops split collection from building a Layout and a LayoutReader for every chunk of every column. On a 100-column file that setup dominates short queries: SELECT * ... LIMIT 1 takes 0.31 s at 1M rows and 0.70 s at 4M rows on 0.83.0, against 0.15 s for a single column.

Generated with rust/vendor.sh's vendoring steps, with a targeted cargo update -p vortex --precise 0.84.0 instead of a full generate-lockfile, so nothing outside the vortex dependency tree moves:

  • 37 vortex-* crates 0.83.0 -> 0.84.0
  • fastlanes 0.5.2 -> 0.6.1, fsst-rs 0.5.11 -> 0.6.0, onpair 0.1.1 -> 0.2.0
  • pastey 0.2.3 added, core_detect 1.0.0 dropped

The two pre-existing unreferenced directories (futures-util-0.3.34, wasm-bindgen-futures-0.4.76, vendored by chdig v26.8.1) are left alone.

Dependencies of the new `rust/workspace/vortex` crate in ClickHouse,
which implements the C FFI for the Vortex file format
(https://github.com/vortex-data/vortex) on top of the `vortex` crate.

For ClickHouse/ClickHouse#87327
Adds the 0.84.0 crates and drops the 0.83.0 ones, together with the
dependencies the bump moved: fastlanes 0.5.2 -> 0.6.1, fsst-rs 0.5.11 -> 0.6.0,
onpair 0.1.1 -> 0.2.0, pastey 0.2.3 added, core_detect 1.0.0 dropped.
alexey-milovidov added a commit to ClickHouse/ClickHouse that referenced this pull request Aug 21, 2026
0.84.0 carries vortex-data/vortex#9271, which stops split
collection from building a `Layout` and a `LayoutReader` for every chunk of every
column just to recover the chunk boundaries the parent already knows. That setup
cost is what a short query on a wide file pays: on 0.83.0, `SELECT * ... LIMIT 1`
over a 100-column file takes 0.31 s at 1 000 000 rows and 0.70 s at 4 000 000,
against 0.15 s when a single column is selected, so it grows with chunks times
columns rather than with the size of the result. Reported by @m7kss1, who measured
8.5 s for `SELECT * FROM hits LIMIT 1` on a file of 100 000 000 rows.

The only API change that reaches this crate is that `ScanBuilder::with_projection`
and `with_filter` now take a `BoundExpression`, so the projection and the pushed
filter are bound to the file's type first. Binding type-checks the whole
expression in one walk, which is where a column that is not in the file, or a
comparison between two types that cannot be compared, is caught now.

The vendored crates are in ClickHouse/rust_vendor#79. The
lock file was updated with `cargo update -p vortex --precise 0.84.0` rather than
regenerated, so nothing outside the `vortex` dependency tree moves: 37 `vortex-*`
crates, `fastlanes` 0.5.2 -> 0.6.1, `fsst-rs` 0.5.11 -> 0.6.0, `onpair`
0.1.1 -> 0.2.0, `pastey` added, `core_detect` dropped.
alexey-milovidov added a commit to ClickHouse/ClickHouse that referenced this pull request Aug 21, 2026
The previous commit recorded a submodule commit that does not exist. The vendored
0.84.0 crates are `ab24d71754f8b4efdbe9bfb0cea7ab219a36d847`, the tip of
`vortex-0.84` in ClickHouse/rust_vendor#79.
@alexey-milovidov
alexey-milovidov merged commit 810b560 into main Aug 22, 2026
alexey-milovidov added a commit to ClickHouse/ClickHouse that referenced this pull request Aug 22, 2026
…merged

ClickHouse/rust_vendor#79 is merged, so the vendored
0.84.0 crates are reachable from `main` and the submodule no longer has to point
into a pull request branch. The tree of the merge commit is identical to the
branch tip it replaces - `git diff ab24d7175 810b5603c` is empty - so nothing
about the vendored crates changes; only the commit the submodule names does.

Related: ClickHouse/rust_vendor#79
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