Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
447 commits
Select commit Hold shift + click to select a range
002f49e
fix[vortex-array]: handle lazily sliced REE to_arrow (#7011)
asubiotto Mar 18, 2026
904079c
chore: clean up #[inline] annotations (#7000)
0ax1 Mar 18, 2026
7cf49a1
chore[ci]: use pre-build image and strip workflow installs (#7013)
joseph-isaacs Mar 18, 2026
b8b056d
Variant DType (#6912)
AdamGS Mar 18, 2026
b387a98
skip[ci]: update miri to use runs on (#7019)
joseph-isaacs Mar 18, 2026
61bc044
Add backwards compatibly handling of sum stats of extension types (#7…
AdamGS Mar 18, 2026
13417e9
skip[ci]: use runs-on for generated-files job (#7021)
joseph-isaacs Mar 18, 2026
4fd1814
fix[compat]: Update the action to use the correct check command (#7016)
joseph-isaacs Mar 18, 2026
4b99a50
MinMax AggregateFn (#7006)
gatesn Mar 18, 2026
6d6faf3
fix: compat script (#7024)
joseph-isaacs Mar 18, 2026
c4b9949
Fix scalar partial ordering comparison (#6999)
connortsui20 Mar 18, 2026
ddb3d39
Simplify returned value when chunked reader is asked to read empty ra…
robert3005 Mar 18, 2026
c3dc5d9
skip: clean up ci prebuild image usage (#7025)
joseph-isaacs Mar 18, 2026
0c7df90
More detailed docs on `ScalarFnVTable` (#7027)
connortsui20 Mar 18, 2026
a98f94c
Decimal sum uses smallest physical type that supports output dtype (#…
robert3005 Mar 19, 2026
644fcdf
IsConstant Aggregate Function (#7028)
gatesn Mar 19, 2026
5c80b40
Sum aggregate doesn't include nan values (#7009)
robert3005 Mar 19, 2026
3cf3a17
chore(deps): update rust crate fsst-rs to v0.5.7 (#7030)
renovate[bot] Mar 19, 2026
ec85ffe
IsSorted AggregateFn (#7029)
gatesn Mar 19, 2026
cff3e15
chore(deps): update rust crate fsst-rs to v0.5.8 (#7031)
renovate[bot] Mar 19, 2026
46c81ff
chore(deps): update gradle to v9.4.0 (#7032)
renovate[bot] Mar 19, 2026
d169713
chore(deps): update plugin com.diffplug.spotless to v8.4.0 (#7033)
renovate[bot] Mar 19, 2026
5081af4
chore(deps): update plugin com.gradleup.shadow to v9.4.0 (#7034)
renovate[bot] Mar 19, 2026
e57c706
chore(deps): update plugin com.vanniktech.maven.publish to v0.36.0 (#…
renovate[bot] Mar 19, 2026
e426310
chore(deps): update rust crate criterion to 0.8 (#7037)
renovate[bot] Mar 19, 2026
58834ee
chore(deps): update rust crate noodles-bgzf to 0.46.0 (#7040)
renovate[bot] Mar 19, 2026
2d37a46
chore(deps): update plugin com.palantir.consistent-versions to v3.15.…
renovate[bot] Mar 19, 2026
625bbf6
chore(deps): update rust crate noodles-vcf to 0.86.0 (#7041)
renovate[bot] Mar 19, 2026
f97e0b3
chore(deps): update rust crate sketches-ddsketch to 0.4.0 (#7047)
renovate[bot] Mar 19, 2026
1e062d0
chore(deps): update rust crate sysinfo to 0.38.0 (#7049)
renovate[bot] Mar 19, 2026
bfe1858
chore(deps): update rust crate strum to 0.28 (#7048)
renovate[bot] Mar 19, 2026
6cf38a2
chore(deps): update rust crate test-with to 0.15 (#7050)
renovate[bot] Mar 19, 2026
7df9f15
chore(deps): update actions/checkout action to v6 (#7055)
renovate[bot] Mar 19, 2026
74122c2
chore(deps): update aws-actions/configure-aws-credentials action to v…
renovate[bot] Mar 19, 2026
b05cd6e
chore(deps): update actions/download-artifact action to v8 (#7056)
renovate[bot] Mar 19, 2026
5088456
chore(deps): update ssciwr/doxygen-install action to v2 (#7060)
renovate[bot] Mar 19, 2026
7cd2206
chore(deps): update rust crate zip to v8 (#7059)
renovate[bot] Mar 19, 2026
bf0ec1c
chore(deps): update rust crate pyo3 to 0.28.0 (#7043)
renovate[bot] Mar 19, 2026
8e706cb
chore(deps): update rust crate rand_distr to 0.6 (#7046)
renovate[bot] Mar 19, 2026
27c06b4
chore(deps): update rust crate termtree to v1 (#7058)
renovate[bot] Mar 19, 2026
20070d2
chore(deps): update rust crate oneshot to 0.2.0 (#7042)
renovate[bot] Mar 19, 2026
683ba3a
Canonical variant array (#7026)
AdamGS Mar 19, 2026
8efe1dc
Vector Extension Type (#6964)
connortsui20 Mar 19, 2026
402d5ce
Print to stdout in `compress-bench` and `random-access-bench` (#7065)
connortsui20 Mar 19, 2026
d260d42
Update CLAUDE.md (#7069)
gatesn Mar 19, 2026
cf1c050
perf[fsst]: like pushdown using a dfa (#6935)
joseph-isaacs Mar 19, 2026
9a9a3ce
chore[fuzz]: (temp) remove duplicate struct field names (#7073)
joseph-isaacs Mar 19, 2026
ea106e4
fix[scalar_fns]: add correct pre-condition checks for all custom push…
joseph-isaacs Mar 19, 2026
43ae2dc
chore: `AggregateFnRef` [de]serialize (#7070)
blaginin Mar 19, 2026
236d5cc
fix[back-compat]: use superset not subset in the check mod (#7075)
joseph-isaacs Mar 20, 2026
b1ab304
Show truncation indicator in array display (#7072)
dimitarvdimitrov Mar 20, 2026
caa2420
chore: cache cpu feat check for micro-benchmarks (#7079)
0ax1 Mar 20, 2026
4829e13
Fuzzer includes unstable_encodings (#7081)
robert3005 Mar 20, 2026
4a0ed9b
feat(cuda): add `SEQUENCE` source op to dyn dispatch (#7078)
0ax1 Mar 20, 2026
967dce5
Update DeltaArray to always pad values to 1024 elements and use bit t…
robert3005 Mar 20, 2026
124c698
fix fuzzer issue #7074 (#7077)
joseph-isaacs Mar 20, 2026
7efebc4
chore[mask]: intersect_by_rank benchmarks (#7083)
joseph-isaacs Mar 20, 2026
8e1fe29
skip: CI / CUDA tests (san in parallel) (#7076)
joseph-isaacs Mar 20, 2026
6895aa5
chore[fuzz]: run for less time more often (#7097)
joseph-isaacs Mar 20, 2026
cbf85ad
chore(deps): update rust crate tar to v0.4.45 [security] (#7099)
renovate[bot] Mar 20, 2026
2ec79da
bump aws-lc-rs to clear advisory (#7100)
onursatici Mar 20, 2026
bb45280
default mimalloc for vortex-python wheels (#7096)
onursatici Mar 20, 2026
062f36c
do not validate already valid arrow varbin arrays (#7089)
onursatici Mar 20, 2026
e5d4315
Remove `vortex-test-e2e` (#7102)
connortsui20 Mar 20, 2026
39b24da
chore(deps): lock file maintenance (#7088)
renovate[bot] Mar 20, 2026
0c29fc4
Function to return vtable from an array (#7085)
gatesn Mar 20, 2026
18359a8
Only pass vtable once via ExtDType<V> (#7105)
gatesn Mar 20, 2026
f5c5e15
chore(deps): update codspeedhq/action digest to 1c8ae48 (#7116)
renovate[bot] Mar 23, 2026
0aa7f7f
chore(deps): update taiki-e/cache-cargo-install-action digest to 1ce8…
renovate[bot] Mar 23, 2026
1b6ed77
chore(deps): update all patch updates (#7119)
renovate[bot] Mar 23, 2026
2325594
chore(deps): update datafusion monorepo to v52.4.0 (#7120)
renovate[bot] Mar 23, 2026
b79b7d6
chore(deps): lock file maintenance (#7121)
renovate[bot] Mar 23, 2026
cbc8ad1
chore[fuzz]: new unstable encodings fuzzer run (#7123)
joseph-isaacs Mar 23, 2026
1c8667c
fix[delta]: compress with nulls undef values use last valid value (or…
joseph-isaacs Mar 23, 2026
7f541db
feat(cuda): hybrid GPU dispatch - fuse dyn + standalone kernels (#7127)
0ax1 Mar 23, 2026
8fd83ab
chore[release]: add compat-gen-upload to release (#7067)
joseph-isaacs Mar 23, 2026
6efc235
Testing FFI from C side (#7126)
myrrc Mar 23, 2026
0b75700
feat[array]: change VTable execution to pass owned arrays (#6867)
joseph-isaacs Mar 23, 2026
7b09ee5
docs: clarify GPU dispatch flow (#7132)
0ax1 Mar 23, 2026
539288e
Fuzzer uses same mask for expected and actual value (#7133)
robert3005 Mar 24, 2026
f03a0c7
Update vtables docs regarding forwarding from erased to typed (#7134)
gatesn Mar 24, 2026
2a68ffa
fix: disambiguate array ops files (#7137)
0ax1 Mar 24, 2026
5a11eee
Revert "fix: disambiguate array ops files" (#7138)
joseph-isaacs Mar 24, 2026
e25e26d
Cleanup fastlanes encodings crate (#7118)
robert3005 Mar 24, 2026
41616b4
skip[fuzz]: remove undefined binary name (#7139)
joseph-isaacs Mar 24, 2026
9f0f8ff
chore[array]: add filter bool bench (#7122)
joseph-isaacs Mar 24, 2026
8f13bda
feat[array]: use transmute for up/down cast of Arc<Array> (#7140)
joseph-isaacs Mar 24, 2026
04776cc
Remove BitBuffer::into_mut and require callers to handle failure to a…
robert3005 Mar 24, 2026
cda251b
fix fuzz_report script (#7141)
a10y Mar 24, 2026
0ea8973
Part 2 of making Variant a canonical array (#7143)
AdamGS Mar 24, 2026
37c01c0
fix: remove nested `block_on` call in `cuda_execute` (#7147)
0ax1 Mar 24, 2026
6cef60b
chore[array]: iterative execute method p1 (#6860)
joseph-isaacs Mar 24, 2026
c790cfb
Support reading SparseArray with non zero offset (#7150)
robert3005 Mar 25, 2026
f200823
fill_forward_nulls resets at 1024 chunk boundary (#7149)
robert3005 Mar 25, 2026
41b997d
fix(python): cap substrait below 0.85.0 (#7153)
RealXuChe Mar 25, 2026
ec2c602
feat[vortex-datafusion]: use PartitionedFile instead of path in creat…
asubiotto Mar 25, 2026
2383946
Add web UI (#7151)
gatesn Mar 25, 2026
b9132aa
fix(python): cap substrait-python before 0.29.0 (#7161)
RealXuChe Mar 25, 2026
6027a9c
Add storybook for component development (#7162)
gatesn Mar 25, 2026
8aae4ba
Make vortex-scan just the Scan API (#7163)
gatesn Mar 25, 2026
b66cfcb
spark: pass format options into reader (#7160)
a10y Mar 25, 2026
7852ece
fix: dyn dispatch requires same bit width types (#7164)
0ax1 Mar 25, 2026
37bb73d
Shade jackson in vortex-jni and vortex-spark and avoid scala version …
robert3005 Mar 26, 2026
97e6c45
Fix docs deploy after java changes (#7170)
robert3005 Mar 26, 2026
66b0f40
Expand execution docs (#7158)
AdamGS Mar 26, 2026
aa108c6
Fix java docs build for real (#7171)
robert3005 Mar 26, 2026
a773f86
fix path for javadoc CI (#7173)
a10y Mar 26, 2026
c256ccd
fix: support total_size=0 in byte_range_to_row_range (#7115)
aalexandrov Mar 26, 2026
9b1f954
Upgrade to DataFusion 53 (#6740)
AdamGS Mar 26, 2026
ce9f13d
make Mimalloc opt-in for ffi (#7179)
myrrc Mar 26, 2026
86c3568
Filter indices without an iterator for Bool (#7176)
AdamGS Mar 26, 2026
c8eae59
Add tsan for vortex-ffi, fix asan instrumentation (#7157)
myrrc Mar 26, 2026
1e0e6d0
Upgrade fsst-rs to 0.5.9 (#7177)
AdamGS Mar 26, 2026
be4761a
feat: teach docs about object store (#7169)
danking Mar 26, 2026
b32c6b9
Specialize export of chunked list arrays (#7180)
AdamGS Mar 26, 2026
656b3fe
Array VTables Migration (#7181)
gatesn Mar 26, 2026
9855100
Array VTables Migration 1b (#7182)
gatesn Mar 26, 2026
7aa556a
chore[gpu]: split plan into unmaterialized / materialized (#7175)
0ax1 Mar 26, 2026
8b83d7b
Array VTables Migration 2 (#7183)
gatesn Mar 26, 2026
fa6931a
scalar_at take execution_ctx (#7166)
a10y Mar 26, 2026
66236f8
Array VTables Migration 3 (#7185)
gatesn Mar 26, 2026
05e5d38
fix: vortex-cxx test race (#7189)
0ax1 Mar 27, 2026
48fe372
Run TPC-H SF 100 nightly on Vortex (#7184)
AdamGS Mar 27, 2026
6fade3c
Unify benchmark dispatch into a workflow (#7178)
AdamGS Mar 27, 2026
5369859
feat: make dispatch plan dynamically sized (#7186)
0ax1 Mar 27, 2026
66db19a
feat: Java Bindings for FixedSizeList (#7188)
JingsongLi Mar 27, 2026
b524763
Cache python class imports (#7191)
AdamGS Mar 27, 2026
1f3206f
Make sure all tokio runtime propegate observability in the same way (…
AdamGS Mar 27, 2026
60847b0
move BitPacked slice from kernel -> parent reduce (#7195)
a10y Mar 27, 2026
d0ed3fc
Python benchmarks script and re-organize dev dependencies (#7192)
AdamGS Mar 28, 2026
2258dd3
New Parquet-Variant encoding (#7130)
AdamGS Mar 30, 2026
a545239
fix: restrict wasm-bindgen to browser wasm, fixing wasip1 builds (#7208)
0ax1 Mar 30, 2026
c85f7a2
feat(cuda): single-pass dispatch plan builder (#7197)
0ax1 Mar 30, 2026
f3a9ff5
Expose expressions for C API (#7190)
myrrc Mar 30, 2026
3c5fbd3
fix[ci]: correct perms to upload back compat fixtures (#7207)
joseph-isaacs Mar 30, 2026
e8cd130
Vortex Explorer UI (#7165)
gatesn Mar 30, 2026
65a8185
feat: Introduce writeBatchFfi in Java JNI to avoid IPC serialization …
JingsongLi Mar 31, 2026
e6bd36f
chore(deps): update taiki-e/cache-cargo-install-action digest to 5118…
renovate[bot] Mar 31, 2026
60aba91
chore(deps): update codspeedhq/action digest to d872884 (#7202)
renovate[bot] Mar 31, 2026
16f1a7f
Deploy Explorer (#7211)
gatesn Mar 31, 2026
fb4ac44
feat[array]: compositional array display logic (#7082)
joseph-isaacs Mar 31, 2026
5ce08ed
array slots (#6870)
joseph-isaacs Mar 31, 2026
9f10dfa
perf: speed up TryFrom<Scalar> for Primitive (#7223)
joseph-isaacs Mar 31, 2026
10c3fc6
Assert_arrays_eq also executes the array and compares the results aga…
robert3005 Mar 31, 2026
5e93e8e
Move stuff around `vortex-tensor` (#7225)
connortsui20 Mar 31, 2026
8c48a53
Pluggable Compressor (#7018)
connortsui20 Mar 31, 2026
df84cee
fix[vortex-array]: fix overflow on FSL element take indices (#7214)
asubiotto Mar 31, 2026
c5d2745
Approximate expressions for tensor types (#7226)
connortsui20 Mar 31, 2026
faf98f2
PatchedArray: basics and wiring (#7002)
a10y Mar 31, 2026
4e4ea56
fix[vortex-array]: update an overflow test (#7229)
asubiotto Mar 31, 2026
0e352e5
Add compressor for constant nonnullable and all valid bool arrays (#7…
robert3005 Mar 31, 2026
3f5913f
chore: have on demand validity and patches for array remove slot extr…
joseph-isaacs Apr 1, 2026
b380c53
buffered strategy to not use eof for the final chunk (#7219)
onursatici Apr 1, 2026
6989b98
skip[ci]: wait for sccache in actions (#7237)
joseph-isaacs Apr 1, 2026
db00b43
Remove deprecated compute traits (#7231)
gatesn Apr 1, 2026
bd9f543
Fill out a few small pieces in Variant (#7209)
AdamGS Apr 1, 2026
ba827a4
fix: fix typo in compressor scheme (#7241)
joseph-isaacs Apr 1, 2026
3ea259e
Fix semantic conflict with array slots (#7243)
robert3005 Apr 1, 2026
8060ae0
Support partitionBy in VortexSparkDataSource (#7218)
robert3005 Apr 1, 2026
a3f290c
remove deprecated StructStrategy (#7242)
a10y Apr 1, 2026
a6cc251
ffi: expose array validity, allow creating primitive arrays (#7148)
myrrc Apr 1, 2026
6cfb2b0
docs: add back array children docs moved from slots (#7249)
joseph-isaacs Apr 1, 2026
267d6ee
Crosshairs for filemap (#7247)
gatesn Apr 1, 2026
e3b7310
feat: iterative execute alp/alp_rd/bitpacking (#7233)
joseph-isaacs Apr 1, 2026
19403db
Update FSL take test to fail with assert_arrays_eq! without explicit …
robert3005 Apr 1, 2026
fcfd443
skip[ci]: remove `debug-assertions=yes` from codspeed runs (#7252)
joseph-isaacs Apr 1, 2026
6fdd0b3
Silence unused warning (#7254)
connortsui20 Apr 1, 2026
59b0083
alp_rd: speedup (#7064)
joseph-isaacs Apr 1, 2026
13937c0
make struct_fields boxed, not arc'd (#7257)
myrrc Apr 2, 2026
37b7625
break: apply should use `apply(self: Arc<Self>, ...)` over `apply(&se…
joseph-isaacs Apr 2, 2026
2eb4f7d
fix[ffi]: to and from ffi types should have a fully defined cast (#7261)
joseph-isaacs Apr 2, 2026
0368c39
skip[ci]: use warm pool for ci (#7253)
joseph-isaacs Apr 2, 2026
38ab5af
ffi: StructArray creation (#7260)
myrrc Apr 2, 2026
f43e12b
Array VTables (#7215)
gatesn Apr 2, 2026
3ed9492
take `VortexSession` by ref (#7270)
connortsui20 Apr 2, 2026
f782a6e
fix comment (#7272)
a10y Apr 2, 2026
886aefc
Invert the`vortex-tensor` dependency (#7271)
connortsui20 Apr 2, 2026
b573853
Clean up btrblocks compressor interface (#7274)
connortsui20 Apr 2, 2026
5d0d627
Require two humans for bot authored PRs (#7232)
gatesn Apr 2, 2026
d879349
Fix tensor expressions and add `InnerProduct` expression (#7277)
connortsui20 Apr 3, 2026
02b0949
Cleaner `WriteStrategyBuilder` interface (#7275)
connortsui20 Apr 3, 2026
1f6db85
chore(deps): update release-drafter/release-drafter action to v7 (#6943)
renovate[bot] Apr 3, 2026
78cdcf2
Remove unused approvals workflow triggers (#7280)
gatesn Apr 3, 2026
017f7a7
Fix badly formatted docs (#7281)
connortsui20 Apr 3, 2026
a8351a9
Correctly gate zstd (#7283)
connortsui20 Apr 3, 2026
bf97ba2
Array VTables Follow Up (#7276)
gatesn Apr 3, 2026
16bbd12
Add comment showing change in benchmark file sizes (#7264)
a10y Apr 3, 2026
c1b9223
Fix Array::validity (#7285)
gatesn Apr 3, 2026
e3c7401
Revert "Add comment showing change in benchmark file sizes (#7264)" (…
connortsui20 Apr 3, 2026
b2a5a70
TurboQuant encoding for Vectors (#7269)
connortsui20 Apr 4, 2026
d5c21dc
Fix ALP mask patches dtype (#7293)
gatesn Apr 6, 2026
2335b79
feat:`Count` aggegate (#7267)
blaginin Apr 6, 2026
1fa9ebe
Fix clippy on develop (#7295)
gatesn Apr 6, 2026
1c2348a
Bring back file-size comments (#7296)
a10y Apr 6, 2026
e415157
Change tensor utils names (#7284)
connortsui20 Apr 6, 2026
6eee669
Fix semantic merge confict in vortex-tensor (#7299)
connortsui20 Apr 6, 2026
11d607e
Hoist Slots (#7287)
gatesn Apr 6, 2026
cca6e9e
Fix `TurboQuant` metadata to be protobuf (#7301)
connortsui20 Apr 6, 2026
de4eb39
ArrayPlugin (#7302)
gatesn Apr 6, 2026
0170156
Tensor Matchers (#7300)
connortsui20 Apr 6, 2026
c1f764b
chore(deps): update actions/github-script digest to 450193c (#7290)
renovate[bot] Apr 6, 2026
2e4b405
chore(deps): update taiki-e/cache-cargo-install-action digest to 66c9…
renovate[bot] Apr 6, 2026
4b3d712
drop unused code (#7304)
a10y Apr 7, 2026
bf95b6f
Fix StructArray / StructData after migration (#7305)
gatesn Apr 7, 2026
8584d27
benchmarks website dark mode (#6886)
myrrc Apr 7, 2026
613638a
chore(deps): update dependency vite to v6.4.2 [security] (#7303)
renovate[bot] Apr 7, 2026
b0cf87b
Do we need to explicitly install ninja? (#7310)
robert3005 Apr 7, 2026
951bdf9
fix: array correctly update their validity (#7307)
joseph-isaacs Apr 7, 2026
6c7eb33
fix[vortex-array]: fix offset_within_chunk underflow on patches array…
asubiotto Apr 7, 2026
7a144d3
feat: `First` `Last` (#7313)
blaginin Apr 7, 2026
6f291c7
break[array]: remove old `vtable!` macro (#7317)
joseph-isaacs Apr 7, 2026
ba920ab
Allow inserting non-Default values to VortexSession (#7321)
gatesn Apr 7, 2026
006ed43
TurboQuant Cleanup part 1 (#7320)
connortsui20 Apr 7, 2026
29a5f43
RLE handles decompression of indices where invalid positions are clob…
robert3005 Apr 7, 2026
b8f8bd5
fix[encodings]: take in progress buffer into account on fsst builder …
asubiotto Apr 7, 2026
9dcb75e
block serialization for the existing aggregations (#7322)
blaginin Apr 7, 2026
06065ff
Normalize Execution (#7278)
gatesn Apr 7, 2026
be65147
Rework `Scheme` estimation in compressor (#7230)
connortsui20 Apr 7, 2026
8d55015
TurboQuant cleanup part 2 (#7326)
connortsui20 Apr 7, 2026
0b52e48
more improvements to file sizes comments (#7319)
a10y Apr 7, 2026
b9c47cf
L2 Denorm expression (#7329)
connortsui20 Apr 7, 2026
95befa7
feat: fsst inline varbin child (#7316)
joseph-isaacs Apr 8, 2026
001f44b
Don't re-run benchmarks nightly (#7338)
AdamGS Apr 8, 2026
bbb371c
Symlink CLAUDE.md to AGENTS.md to support other coding agents (#7333)
AdamGS Apr 8, 2026
f87eefa
feat[gpu]: support mixed-width types in dynamic dispatch (#7331)
0ax1 Apr 8, 2026
2e00050
Dynamic WHT rounds in TurboQuant (#7330)
connortsui20 Apr 8, 2026
5adc437
Unify id creation for ScalarFns and rename is_null to vortex.is_null …
robert3005 Apr 8, 2026
51d34d1
move scheme files around (#7342)
connortsui20 Apr 8, 2026
d72bf9b
Enable clippy::clone_on_ref_ptr lint and fix all violations (#7262)
joseph-isaacs Apr 8, 2026
cdebcdc
feat: iterative execution (#7335)
joseph-isaacs Apr 8, 2026
ff21366
fix lint on develop (#7346)
a10y Apr 8, 2026
0e9c0c5
Buffer Allocator Abstraction (#7337)
gatesn Apr 8, 2026
eacb959
Pull out `L2Denorm` from TurboQuant (#7349)
connortsui20 Apr 8, 2026
1748d17
Remove generic rle (#7350)
connortsui20 Apr 8, 2026
24736e1
Move Array::serialize -> ArrayPlugin::Serialize (#7348)
gatesn Apr 8, 2026
bab7798
Fix TSan data race with FFI tests (#7244)
myrrc Apr 9, 2026
a30de02
Add a dedicated CI build profile (#7357)
AdamGS Apr 9, 2026
1d8f307
Allow loading "foreign" plugins for UI/TUI/Serde (#7347)
gatesn Apr 9, 2026
84e4dc0
AVX2 take handles indices that are equal to the index type max value …
robert3005 Apr 9, 2026
957eb3a
Fix semantic merge conflict between session serde and foreign encodin…
robert3005 Apr 9, 2026
72d39fb
Fix patch_chunk index OOB when slicing ALP arrays mid-chunk (#7354)
abnobdoss Apr 9, 2026
77c8e95
feat: iterative execution patched array (#7345)
joseph-isaacs Apr 9, 2026
c660607
add env flag for Patched array (#7314)
a10y Apr 9, 2026
8974afe
feat: add an arrays slots macro (#7360)
joseph-isaacs Apr 9, 2026
0b2a35e
Add IsNull expression to vortex-jni (#7358)
robert3005 Apr 9, 2026
ccc6590
fix: maturin never logs (#7367)
danking Apr 9, 2026
47f97f4
Add inner product and cosine similarity optimizations (#7364)
connortsui20 Apr 9, 2026
ae906c7
Clean up `AGENTS.md` (#7366)
connortsui20 Apr 9, 2026
9c934a6
feat: upgrade spiceai-52 to Vortex 0.68.0
lukekim Apr 10, 2026
bb80c53
fix: restore lint checks on forks
lukekim Apr 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 3 additions & 0 deletions .config/nextest.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[[profile.default.overrides]]
filter = 'test(compress_large_int)'
priority = 100
23 changes: 23 additions & 0 deletions .github/actions/check-rebuild/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: "Build and verify rebuild is a no-op"
description: "Run a cargo command, then re-run it to verify all artifacts are cached"
inputs:
command:
description: "The cargo build command to run and verify (--message-format json is appended on the verification run)"
required: true
runs:
using: "composite"
steps:
- name: "Build"
shell: bash
run: ${{ inputs.command }}
- name: "Verify rebuild is a no-op"
shell: bash
run: |
stale=$(${{ inputs.command }} \
--message-format json 2>/dev/null \
| jq -r 'select(.reason == "compiler-artifact" and .fresh == false) | .target.name')
if [ -n "$stale" ]; then
echo "ERROR: Rebuild recompiled crates that should have been cached:"
echo "$stale"
exit 1
fi
49 changes: 49 additions & 0 deletions .github/actions/setup-prebuild/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: "Setup Prebuild"
description: "Prebuild AMIs — uses pre-installed tools, falls back to full setup-rust for forks"

inputs:
repo-token:
description: "GitHub token for accessing the repository (typically secrets.GITHUB_TOKEN)"
required: false
default: "${{ github.token }}"
toolchain:
description: "optional override for the toolchain version (e.g. nightly)"
required: false
components:
description: "optional override for the components to install for the step (e.g. clippy, rustfmt, miri)"
default: "clippy, rustfmt"
required: false
targets:
description: "optional targets override (e.g. wasm32-unknown-unknown)"
required: false
enable-sccache:
description: "Should sccache be enabled, true by default."
required: false
default: "true"

runs:
using: "composite"
steps:
# Prebuild path: tools already installed, just configure sccache
- name: Configure sccache timeout
if: github.repository == 'vortex-data/vortex' && inputs.enable-sccache == 'true'
shell: bash
run: |
mkdir -p ~/.config/sccache
echo 'server_startup_timeout_ms = 60000' > ~/.config/sccache/config

- name: Pre-start sccache server
if: github.repository == 'vortex-data/vortex' && inputs.enable-sccache == 'true'
shell: bash
run: sccache --start-server

# Fallback path: full setup for forks
- name: Full Rust setup
if: github.repository != 'vortex-data/vortex'
uses: ./.github/actions/setup-rust
with:
repo-token: ${{ inputs.repo-token }}
toolchain: ${{ inputs.toolchain }}
components: ${{ inputs.components }}
targets: ${{ inputs.targets }}
enable-sccache: ${{ inputs.enable-sccache }}
47 changes: 42 additions & 5 deletions .github/actions/setup-rust/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ description: "Toolchain setup and Initial compilation"

inputs:
repo-token:
description: "Deprecated: no longer used. Protoc is now downloaded directly from GitHub releases CDN."
description: "GitHub token for accessing the repository (typically secrets.GITHUB_TOKEN)"
required: false
default: ""
default: "${{ github.token }}"
toolchain:
description: "optional override for the toolchain version (e.g. nightly)"
required: false
Expand Down Expand Up @@ -38,21 +38,58 @@ runs:
if: runner.os == 'Linux'
uses: rui314/setup-mold@v1

- name: Check for rustup
id: check-rustup
shell: bash
run: echo "exists=$(command -v rustup &> /dev/null && echo 'true' || echo 'false')" >> $GITHUB_OUTPUT

- name: Rust Toolchain
id: rust-toolchain
uses: dtolnay/rust-toolchain@stable
if: steps.rustup-cache.outputs.cache-hit != 'true'
if: steps.check-rustup.outputs.exists != 'true'
with:
toolchain: "${{ steps.toolchain-config.outputs.toolchain }}"
targets: "${{ inputs.targets }}"
components: "${{ inputs.components }}"

- name: Install additional targets and components
if: steps.check-rustup.outputs.exists == 'true'
shell: bash
run: |
rustup toolchain install "$TOOLCHAIN"
[[ -n "$TARGETS" ]] && rustup target add --toolchain "$TOOLCHAIN" ${TARGETS//,/ }
[[ -n "$COMPONENTS" ]] && rustup component add --toolchain "$TOOLCHAIN" ${COMPONENTS//,/ }
env:
TOOLCHAIN: ${{ steps.toolchain-config.outputs.toolchain }}
TARGETS: ${{ inputs.targets }}
COMPONENTS: ${{ inputs.components }}
Comment thread
lukekim marked this conversation as resolved.

- name: Configure sccache timeout
if: inputs.enable-sccache == 'true'
shell: bash
run: |
mkdir -p ~/.config/sccache
echo 'server_startup_timeout_ms = 60000' > ~/.config/sccache/config

- name: Rust Compile Cache
if: inputs.enable-sccache == 'true'
uses: mozilla-actions/sccache-action@v0.0.9
with:
version: "v0.14.0"

- name: Pre-start sccache server
if: inputs.enable-sccache == 'true'
shell: bash
run: sccache --start-server

- name: Install Protoc (for lance-encoding build step)
if: runner.os != 'Windows'
uses: ./.github/actions/setup-protoc

- name: Install Sweep
shell: bash
if: ${{ inputs.timestamp == 'true' && github.ref_name == 'develop' }}
run: cargo install cargo-sweep

- name: Timestamp Cache
shell: bash
if: ${{ inputs.timestamp == 'true' && github.ref_name == 'develop' }}
run: cargo sweep --stamp
12 changes: 1 addition & 11 deletions .github/runs-on.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1 @@
images:
vortex-ci-amd64:
platform: "linux"
arch: "x64"
name: "vortex-ci-*"
owner: "375504701696"
vortex-ci-arm64:
platform: "linux"
arch: "arm64"
name: "vortex-ci-*"
owner: "375504701696"
_extends: .github-private
5 changes: 3 additions & 2 deletions .github/scripts/fuzz_report/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -363,8 +363,9 @@ def cmd_report(args: argparse.Namespace) -> int:
print(f"Commented on #{existing_issue}", file=sys.stderr)
_write_github_output("issue_number", str(existing_issue))
else:
fuzz_target = variables.get("FUZZ_TARGET", "unknown")
title = f"Fuzzing Crash: {crash_info.error_variant} in {fuzz_target}"
# Use FUZZ_NAME for the title (descriptive name), fall back to FUZZ_TARGET
fuzz_name = variables.get("FUZZ_NAME") or variables.get("FUZZ_TARGET", "unknown")
title = f"Fuzzing Crash: {crash_info.error_variant} in {fuzz_name}"

body = render_template(str(TEMPLATES_DIR / "new_issue.md"), variables, use_env=False)
body_file = Path("issue_body.md")
Expand Down
63 changes: 54 additions & 9 deletions .github/scripts/fuzz_report/templates/new_issue.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
**Crash Location**: `{{CRASH_LOCATION}}`

**Error Message**:

```
{{PANIC_MESSAGE}}
```
Expand All @@ -15,6 +16,7 @@
```
{{STACK_TRACE_RAW}}
```

</details>
{% if CLAUDE_ANALYSIS %}

Expand All @@ -31,23 +33,66 @@
- **Commit**: {{COMMIT}}
- **Crash Artifact**: {{ARTIFACT_URL}}

### Reproduction
### Reproduce

```bash
cargo +nightly fuzz run -D --sanitizer=none {{FUZZ_TARGET}} ./fuzz/artifacts/{{FUZZ_TARGET}}/{{CRASH_FILE}} -- -rss_limit_mb=0
```

<details>
<summary>Reproduction Steps</summary>

1. Download the crash artifact: {{ARTIFACT_URL}}

1. Download the crash artifact:
- **Direct download**: {{ARTIFACT_URL}}
- Extract the zip file
2. Assuming you download the zipfile to `~/Downloads`, and your working directory is the repository root:

2. Reproduce locally:
```bash
cargo +nightly fuzz run -D --sanitizer=none {{FUZZ_TARGET}} {{FUZZ_TARGET}}/{{CRASH_FILE}} -- -rss_limit_mb=0
# Create the artifacts directory if you haven't already.
mkdir -p ./fuzz/artifacts

# Move the zipfile.
mv ~/Downloads/{{FUZZ_TARGET}}-crash-artifacts.zip ./fuzz/artifacts/

# Unzip the zipfile.
unzip ./fuzz/artifacts/{{FUZZ_TARGET}}-crash-artifacts.zip -d ./fuzz/artifacts/

# You can remove the zipfile now if you want to.
rm ./fuzz/artifacts/{{FUZZ_TARGET}}-crash-artifacts.zip
```

3. Get full backtrace:
3. Reproduce the crash:

```bash
RUST_BACKTRACE=full cargo +nightly fuzz run -D --sanitizer=none {{FUZZ_TARGET}} {{FUZZ_TARGET}}/{{CRASH_FILE}} -- -rss_limit_mb=0
cargo +nightly fuzz run -D --sanitizer=none {{FUZZ_TARGET}} ./fuzz/artifacts/{{FUZZ_TARGET}}/{{CRASH_FILE}} -- -rss_limit_mb=0
```

If you want a backtrace:

```bash
RUST_BACKTRACE=1 cargo +nightly fuzz run -D --sanitizer=none {{FUZZ_TARGET}} ./fuzz/artifacts/{{FUZZ_TARGET}}/{{CRASH_FILE}} -- -rss_limit_mb=0
```

```bash
RUST_BACKTRACE=full cargo +nightly fuzz run -D --sanitizer=none {{FUZZ_TARGET}} ./fuzz/artifacts/{{FUZZ_TARGET}}/{{CRASH_FILE}} -- -rss_limit_mb=0
```

</details>

<details>
<summary>Single command to get a backtrace</summary>

```bash
mkdir -p ./fuzz/artifacts
mv ~/Downloads/{{FUZZ_TARGET}}-crash-artifacts.zip ./fuzz/artifacts/
unzip ./fuzz/artifacts/{{FUZZ_TARGET}}-crash-artifacts.zip -d ./fuzz/artifacts/
rm ./fuzz/artifacts/{{FUZZ_TARGET}}-crash-artifacts.zip
RUST_BACKTRACE=1 cargo +nightly fuzz run -D --sanitizer=none {{FUZZ_TARGET}} ./fuzz/artifacts/{{FUZZ_TARGET}}/{{CRASH_FILE}} -- -rss_limit_mb=0
```

</details>

<!-- seed_hash:{{SEED_HASH}} stack_hash:{{STACK_TRACE_HASH}} message_hash:{{MESSAGE_HASH}} -->

---
*Auto-created by fuzzing workflow*

_Auto-created by fuzzing workflow_
9 changes: 9 additions & 0 deletions .github/scripts/run-sql-bench.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
#
# Options:
# --scale-factor <sf> Scale factor for the benchmark (e.g., 1.0, 10.0)
# --iterations <n> Number of iterations to pass to each benchmark binary
# --remote-storage <url> Remote storage URL (e.g., s3://bucket/path/)
# If provided, runs in remote mode (no lance support).
# --benchmark-id <id> Benchmark ID for error messages (e.g., tpch-s3)
Expand All @@ -26,6 +27,7 @@ targets="$2"
shift 2

scale_factor=""
iterations=""
remote_storage=""
benchmark_id=""

Expand All @@ -35,6 +37,10 @@ while [[ $# -gt 0 ]]; do
scale_factor="$2"
shift 2
;;
--iterations)
iterations="$2"
shift 2
;;
--remote-storage)
remote_storage="$2"
shift 2
Expand Down Expand Up @@ -91,6 +97,9 @@ if [[ -n "$scale_factor" ]]; then
opts="--opt scale-factor=$scale_factor"
fi
fi
if [[ -n "$iterations" ]]; then
opts="-i $iterations $opts"
fi

touch results.json

Expand Down
46 changes: 46 additions & 0 deletions .github/workflows/approvals.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: PR Approval Check

on:
pull_request_review:
types: [submitted, dismissed]

jobs:
check-approvals:
runs-on: ubuntu-latest
steps:
- name: Check required approvals
uses: actions/github-script@450193c5abd4cdb17ba9f3ffcfe8f635c4bb6c2a
with:
script: |
const pr = context.payload.pull_request;
const reviews = await github.rest.pulls.listReviews({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: pr.number,
});

// Count unique human approvals (latest review per user)
const latestByUser = {};
for (const review of reviews.data) {
if (review.user.type === 'Bot') continue;
latestByUser[review.user.login] = review.state;
}
const approvalCount = Object.values(latestByUser)
.filter(state => state === 'APPROVED').length;

// Determine if PR author is a bot/GitHub Actions
const authorType = pr.user.type; // 'Bot' vs 'User'
const authorLogin = pr.user.login; // e.g. 'github-actions[bot]'
const isBot = authorType === 'Bot' || authorLogin.endsWith('[bot]');

const required = isBot ? 2 : 1;

console.log(`PR author: ${authorLogin} (${authorType}), isBot: ${isBot}`);
console.log(`Approvals: ${approvalCount} / ${required} required`);

if (approvalCount < required) {
core.setFailed(
`This PR needs ${required} human approval(s) but has ${approvalCount}. ` +
`(Author is ${isBot ? 'a bot' : 'human'})`
);
}
Loading
Loading