Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
105 commits
Select commit Hold shift + click to select a range
890704f
feat: add CUDA cuDF convenience API (#8624)
0ax1 Jul 1, 2026
a21bf76
feat(vortex-bench): wire SpatialBench into the bench orchestrator (#8…
HarukiMoriarty Jul 2, 2026
574326f
feat(vortex-geo): add MultiPolygon extension type + WKB export for na…
HarukiMoriarty Jul 2, 2026
b7b1408
feat(vortex-bench): support vortex native geo types into SpatialBench…
HarukiMoriarty Jul 2, 2026
d9ee09f
Decouple optional features from pulling `vortex-file` features for to…
AdamGS Jul 2, 2026
0026d3a
Remove execute_boolean fallback to arrow (#8644)
robert3005 Jul 2, 2026
7d170d5
Disallow the legacy global session and allowlist existing call sites …
robert3005 Jul 2, 2026
5172987
perf: branchless mask-select for listview zip (#8264)
joseph-isaacs Jul 2, 2026
ee2cd67
Remove variants module (#8643)
robert3005 Jul 2, 2026
229b3bd
feat: support `ST_DWithin` pushdown in vortex (#8625)
HarukiMoriarty Jul 3, 2026
f8b18d9
Force initialisation of VortexSession before bench loop (#8479)
joseph-isaacs Jul 4, 2026
a390ad2
Update Rust crate cxx to v1.0.195 [SECURITY] (#8653)
renovate[bot] Jul 6, 2026
5e656ee
Lock file maintenance (#8655)
renovate[bot] Jul 6, 2026
b0d7e8c
Add bit iteration benchmarks (#8656)
robert3005 Jul 6, 2026
25b6b55
Skip CUDA codspeed benchmarks if there were no cuda changes (#8657)
robert3005 Jul 6, 2026
a611299
Lock file maintenance (#8654)
renovate[bot] Jul 6, 2026
86c250a
Optimize bit iteration and validity checking with SIMD popcount (#8636)
robert3005 Jul 6, 2026
570f7ed
Remove borrowed types from FFI; fixed_size_list constructor accepts u…
myrrc Jul 6, 2026
4959939
Add policy-bot configuration file (#8659)
robert3005 Jul 6, 2026
91f1ca8
VortexSession register is public and allow_unknown takes reference (#…
robert3005 Jul 6, 2026
1743bb0
Fix vortex-jni local path handling, centralise logic in vortex-file (…
robert3005 Jul 6, 2026
a6e3d3e
Remove automation approval github actions (#8660)
robert3005 Jul 6, 2026
8f72595
Hardcode constant detection into the cascading compressor (#8667)
connortsui20 Jul 7, 2026
40cb396
FFI: canonicalize array, data pointer for primitives (#8665)
myrrc Jul 7, 2026
e6c312a
mean() for decimals (#8649)
myrrc Jul 7, 2026
a4a11a5
sccache cleanup (#8669)
AdamGS Jul 7, 2026
0d50342
Replace ToCanonical trait usages with execute (#8609)
robert3005 Jul 7, 2026
9a42615
Grow list builders as we append elements to it (#8673)
robert3005 Jul 7, 2026
4abe3d0
fix: TableStrategy currently hides panic in spawned column writer tas…
AdamGS Jul 7, 2026
1e91494
FFI: replace vx_string/vx_binary with vx_view (#8668)
myrrc Jul 7, 2026
b9779d6
Better error message in case of unknown encoding id (#8681)
robert3005 Jul 7, 2026
3e32163
Direct issues to templates instead of GitHub Discussions (#8685)
connortsui20 Jul 8, 2026
f1465af
Consolidate benchmark SQL queries into `vortex-bench/sql`directory (#…
connortsui20 Jul 8, 2026
596099c
ci: remove v3 benchmark ingest, make v4 Postgres ingest required (#8683)
connortsui20 Jul 8, 2026
1ba1515
Bump locked version of crossbeam-epoch to address security advisory (…
AdamGS Jul 8, 2026
b1f2d4f
Cast pushdown for duckdb (#8620)
myrrc Jul 8, 2026
fa000ff
ci: pin the `measurement_id` hash with golden vectors in-repo (#8687)
connortsui20 Jul 8, 2026
c7c28d8
feat(geo): add native `LineString`, `MultiPoint`, `MultiLineString` t…
HarukiMoriarty Jul 8, 2026
4c762f7
ci: install only the uv binary for v4 ingest (drop the workspace sync…
connortsui20 Jul 8, 2026
33c9a30
Audit panic handling in detached tasks (#8677)
AdamGS Jul 8, 2026
11f15a9
Implement compare in vortex instead of falling back to arrow (#8661)
robert3005 Jul 8, 2026
a6ce832
Ungrouped aggregate function pushdown for duckdb (#8645)
myrrc Jul 9, 2026
07e1b52
fix: accept FixedSizeList dtype when deserializing ListValue scalars …
brancz Jul 9, 2026
aff0bd3
Split `TableStrategy` dispatcher from `StructStrategy` (#8638)
mhk197 Jul 9, 2026
24ad8fd
Remove arrow usage from VarBin::compare, VarBinView::filter and BoolA…
robert3005 Jul 9, 2026
1bcaf3f
Add `list_sum` expression (#8676)
mhk197 Jul 9, 2026
a649d75
cuda: build.rs add trigger (#8708)
mag1c1an1 Jul 10, 2026
ceff058
vortex-file: Spawn tasks via runtime instead of directly via tokio (#…
brancz Jul 10, 2026
a530b3b
Add `UnionVariants` type and embed it in `DType::Union` (#8703)
connortsui20 Jul 10, 2026
42bea5d
Add golden-corpus determinism tests for the default compressor (#8697)
connortsui20 Jul 10, 2026
dd4ab89
Ignore quick-xml rustsec since we cannot update it ourselves (#8712)
robert3005 Jul 10, 2026
d96e4ad
Ignore one more quick-xml rustsec advisory (#8716)
robert3005 Jul 10, 2026
357a4ba
Remove stored `Union` `Nullability` (#8714)
connortsui20 Jul 10, 2026
2a58c67
Optimize dependencies using cargo-shear (#8715)
AdamGS Jul 10, 2026
d2b2378
Implement LIKE in vortex instead of falling back to arrow (#8709)
robert3005 Jul 10, 2026
d518410
Update actions/setup-java digest to 0f481fc (#8729)
renovate[bot] Jul 13, 2026
efe52af
Update actions/setup-python digest to ece7cb0 (#8730)
renovate[bot] Jul 13, 2026
8363595
Update actions/stale digest to 1e223db (#8731)
renovate[bot] Jul 13, 2026
862f158
Benchmarks for fixed-width array filtering (#8727)
robert3005 Jul 13, 2026
0c7e0ff
Add docs on how to use Spark vortex datasource (#8728)
robert3005 Jul 13, 2026
371c984
Fix integer overflow in BitBufferMut::truncate and append_n (#8474)
ksj1230 Jul 13, 2026
30fff30
Reduce Java and vortex-jni build sizes (#8734)
AdamGS Jul 13, 2026
452e0f8
Update dependency ray to v2.56.0 [SECURITY] (#8732)
renovate[bot] Jul 13, 2026
a6513a0
fix(layout/dict): probe with the configured compressor instead of a h…
tomsanbear Jul 13, 2026
c27a612
remove old c++ api (#8736)
myrrc Jul 13, 2026
1d7951a
Split arrow dependency from vortex-array (#8717)
robert3005 Jul 13, 2026
443b79b
New C++ api docs (#8737)
myrrc Jul 13, 2026
3d78175
vx_expression_clone, remove vx_file_write_array (#8735)
myrrc Jul 13, 2026
002e40a
ST_Intersects pushdown: vortex.geo.intersects kernel, DuckDB lowering…
HarukiMoriarty Jul 13, 2026
0aa35f4
Reject negative Union type IDs (#8738)
connortsui20 Jul 13, 2026
2f18a4c
feat(vortex-geo): add native geoarrow.box bounding-box type (#8746)
HarukiMoriarty Jul 13, 2026
5abaf98
Fix flaky CodSpeed microbenchmarks (#8742)
connortsui20 Jul 14, 2026
e519a02
Reorganize the compressor (#8745)
connortsui20 Jul 14, 2026
8ea5dcd
Update dependency setuptools to v83 [SECURITY] (#8752)
renovate[bot] Jul 14, 2026
56dffcc
New C++ API (#8741)
myrrc Jul 14, 2026
80d4c7e
fix(onpair): pin OnPair dictionary-training seed for determinism (#8756)
claude[bot] Jul 14, 2026
369fd32
Better error message for unsupported Arrow vector type in Spark reade…
jackylee-ch Jul 15, 2026
b084b3d
duckdb 1.5.4 (#8761)
myrrc Jul 15, 2026
204dacc
forbid todo!/unimplemented! in vortex-duckdb (#8762)
myrrc Jul 15, 2026
1bf87e6
fix(spark): warn that overwrite destructively deletes existing files …
jackylee-ch Jul 15, 2026
6b27c45
test(spark): characterize ArrowUtils Arrow-to-Spark type mapping (#8770)
jackylee-ch Jul 15, 2026
af1e6a6
Support reporting statistics and currently written byte size from wri…
robert3005 Jul 15, 2026
8a1f91c
feat(vortex-geo): geometry `Bbox` zone-map statistic + distance-filte…
HarukiMoriarty Jul 15, 2026
7f8d92f
VortexArrowColumnVector supports conversion from all arrow types that…
robert3005 Jul 15, 2026
cdaa5a5
feat(vortex-geo): prune ST_Intersects filters via the AABB zone stati…
HarukiMoriarty Jul 15, 2026
2cade61
fix(cuda): preserve dictionary value nulls (#8774)
0ax1 Jul 15, 2026
f47bf54
ci: cut wasted minutes from measurement_id and WASM jobs (#8776)
a10y Jul 15, 2026
159207e
ListArray::reset_offsets doesn't need to revalidate array after reset…
robert3005 Jul 16, 2026
198cbd5
New C++ API tests (#8751)
myrrc Jul 16, 2026
d54f70d
test(spark): characterize PartitionPathUtils partition discovery and …
jackylee-ch Jul 16, 2026
1c419e5
Own SQL benchmark suite (#8719)
myrrc Jul 16, 2026
8d52fff
test(spark): characterize SparkToArrowSchema Spark-to-Arrow conversio…
jackylee-ch Jul 16, 2026
e727c46
Expose CUDA-compatible file sink through FFI (#8784)
onursatici Jul 16, 2026
01e5eb0
Expose pooled CUDA file scans through FFI (#8788)
onursatici Jul 16, 2026
54b045b
feat(jni): bridge caller-provided Java I/O into VortexReadAt/VortexWr…
robert3005 Jul 16, 2026
f742e8a
feat(cuda): export FSST directly to Arrow varbin (#8787)
0ax1 Jul 16, 2026
8f75dbe
feat[buffer]: specialized `collect_bool` per arch (#8749)
joseph-isaacs Jul 16, 2026
9c69195
feat: arch intrinsic feature discovery pattern (#8750)
joseph-isaacs Jul 16, 2026
17f843a
Use u8 Union type IDs (#8790)
connortsui20 Jul 16, 2026
407720c
Add outer nullability to Union (#8798)
connortsui20 Jul 16, 2026
b51140a
`ListLayout` baseline (#8706)
mhk197 Jul 16, 2026
3975895
Remove the old v2 benchmarks website (#8805)
connortsui20 Jul 16, 2026
c981534
apply alp patches in parallel in cuda (#8793)
onursatici Jul 17, 2026
68badd6
fix: TableStrategy currently hides panic in spawned column writer tas…
AdamGS Jul 7, 2026
61966e6
Merge tag '0.79.0' into lukim/spiceai-54-vortex-0.79.0
lukekim Jul 20, 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
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .clang-format
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ DerivePointerAlignment: false
IncludeBlocks: Regroup
InsertBraces: true
Language: Cpp
NamespaceIndentation: Inner
NamespaceIndentation: None
PointerAlignment: Right
SpaceBeforeCpp11BracedList: true
SpaceBeforeCtorInitializerColon: true
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: Bug Report
description: Report something that isn't working correctly
labels: ["needs-triage"]
labels: ["bug"]
body:
- type: markdown
attributes:
Expand Down
6 changes: 3 additions & 3 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
blank_issues_enabled: true
contact_links:
- name: Features, Questions
url: https://github.com/vortex-data/vortex/discussions/new/choose
about: Our preferred starting point if you have any questions or suggestions about configuration, features or behavior.
- name: Community Slack
url: https://vortex.dev/slack
about: Chat with the community for quick questions and discussion.
27 changes: 27 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: Feature Request
description: Suggest a new feature or improvement
labels: ["feature"]
body:
- type: textarea
id: problem
attributes:
label: Problem or motivation
description: What are you trying to do that Vortex doesn't support today?
validations:
required: true

- type: textarea
id: proposal
attributes:
label: Proposed solution
description: What would you like to see happen?
validations:
required: true

- type: textarea
id: additional
attributes:
label: Additional context
description: Alternatives considered, links, or anything else helpful
validations:
required: false
24 changes: 24 additions & 0 deletions .github/ISSUE_TEMPLATE/question.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Question
description: Ask a question about using or configuring Vortex
labels: ["question"]
body:
- type: markdown
attributes:
value: |
Please check the [documentation](https://docs.vortex.dev) first. For quick
back-and-forth, try the [Vortex Slack channel](https://vortex.dev/slack).

- type: textarea
id: question
attributes:
label: What's your question?
validations:
required: true

- type: textarea
id: context
attributes:
label: Context
description: What you've tried, relevant code, or your environment
validations:
required: false
6 changes: 3 additions & 3 deletions .github/actions/setup-prebuild/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@ inputs:
description: "optional targets override (e.g. wasm32-unknown-unknown)"
required: false
enable-sccache:
description: "Should sccache be enabled, true by default."
description: "Should sccache be enabled."
required: false
default: "true"
default: "false"

runs:
using: "composite"
Expand All @@ -46,4 +46,4 @@ runs:
toolchain: ${{ inputs.toolchain }}
components: ${{ inputs.components }}
targets: ${{ inputs.targets }}
enable-sccache: ${{ inputs.enable-sccache }}
enable-sccache: "false"
4 changes: 2 additions & 2 deletions .github/actions/setup-rust/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@ inputs:
description: "optional targets override (e.g. wasm32-unknown-unknown)"
required: false
enable-sccache:
description: "Should sccache be enabled, true by default."
description: "Should sccache be enabled."
required: false
default: "true"
default: "false"

runs:
using: "composite"
Expand Down
49 changes: 0 additions & 49 deletions .github/workflows/approvals.yml

This file was deleted.

3 changes: 2 additions & 1 deletion .github/workflows/bench-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,11 @@ jobs:
- uses: ./.github/actions/setup-rust
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
enable-sccache: ${{ github.event.pull_request.head.repo.fork == false && 'true' || 'false' }}

- name: Install DuckDB
run: |
wget -qO- https://github.com/duckdb/duckdb/releases/download/v1.5.3/duckdb_cli-linux-amd64.zip | funzip > duckdb
wget -qO- https://github.com/duckdb/duckdb/releases/download/v1.5.4/duckdb_cli-linux-amd64.zip | funzip > duckdb
chmod +x duckdb
echo "$PWD" >> $GITHUB_PATH

Expand Down
73 changes: 42 additions & 31 deletions .github/workflows/bench.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,10 +60,11 @@ jobs:
- uses: ./.github/actions/setup-rust
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
enable-sccache: ${{ github.repository == 'vortex-data/vortex' && 'true' || 'false' }}

- name: Install DuckDB
run: |
wget -qO- https://github.com/duckdb/duckdb/releases/download/v1.5.3/duckdb_cli-linux-amd64.zip | funzip > duckdb
wget -qO- https://github.com/duckdb/duckdb/releases/download/v1.5.4/duckdb_cli-linux-amd64.zip | funzip > duckdb
chmod +x duckdb
echo "$PWD" >> $GITHUB_PATH

Expand Down Expand Up @@ -116,47 +117,29 @@ jobs:
run: |
bash scripts/cat-s3.sh vortex-ci-benchmark-results data.json.gz results.json

- name: Ingest results to v3 server
if: vars.V3_INGEST_URL != ''
shell: bash
env:
INGEST_BEARER_TOKEN: ${{ secrets.INGEST_BEARER_TOKEN }}
run: |
python3 scripts/post-ingest.py results.v3.jsonl \
--server "${{ vars.V3_INGEST_URL }}" \
--commit-sha "${{ github.sha }}" \
--benchmark-id "${{ matrix.benchmark.id }}" \
--repo-url "${{ github.server_url }}/${{ github.repository }}"

# v4 (Postgres) dual-write -- BEST-EFFORT during the migration soak. The
# proven v3 step above is hard-required; a v4 failure must NOT fail the job
# (v4 is promoted to required at cutover, PR-5.1). Gated on the ingest-role
# ARN var (the assume-role input that MUST exist for OIDC to succeed) so it
# no-ops until v4 infra is wired, and every step is
# `continue-on-error` so an OIDC / uv / connect hiccup never breaks the v3
# pipeline. post-ingest.py mints the RDS IAM token internally (boto3) from
# the assumed GitHubBenchmarkIngestRole; sslmode=verify-full validates the cert.
# v4 (Postgres) ingest -- the REQUIRED benchmark-results pipeline feeding the live
# benchmarks website; a failure here fails the job. Gated on the ingest-role ARN var
# (the assume-role input that MUST exist for OIDC to succeed). post-ingest.py mints
# the RDS IAM token internally (boto3) from the assumed GitHubBenchmarkIngestRole;
# sslmode=verify-full validates the cert.
#
# ORDER MATTERS: "Install uv" runs BEFORE "Configure AWS credentials".
# configure-aws-credentials persists the assumed ingest-role (rds-db:connect
# only) as the job's ambient AWS creds; the uv setup compiles via sccache
# (S3-backed), so running it after the role switch fails with S3 AccessDenied.
# Installing uv first keeps sccache on the original S3-capable creds; the role
# is assumed immediately before the ingest, which needs only rds-db:connect.
# `sync: false` -- the ingest runs `uv run --no-project --with`, which needs only
# the uv binary, never the synced workspace. A full sync would rebuild
# vortex-python via sccache->S3, which fails under the ingest-role creds
# (rds-db:connect only) and is pure waste here.
- name: Install uv for v4 ingest
if: vars.GH_BENCH_INGEST_ROLE_ARN != ''
continue-on-error: true
uses: spiraldb/actions/.github/actions/setup-uv@a746510eafaa926484c354541cfc49b2ec06cc63 # 0.18.6
with:
sync: false
- name: Configure AWS credentials for v4 ingest (OIDC)
if: vars.GH_BENCH_INGEST_ROLE_ARN != ''
continue-on-error: true
uses: aws-actions/configure-aws-credentials@e7f100cf4c008499ea8adda475de1042d6975c7b # v6
with:
role-to-assume: ${{ vars.GH_BENCH_INGEST_ROLE_ARN }}
aws-region: ${{ vars.RDS_BENCH_REGION }}
- name: Ingest results to v4 Postgres (best-effort)
- name: Ingest results to v4 Postgres
if: vars.GH_BENCH_INGEST_ROLE_ARN != ''
continue-on-error: true
shell: bash
env:
RDS_BENCH_INSTANCE_ENDPOINT: ${{ vars.RDS_BENCH_INSTANCE_ENDPOINT }}
Expand Down Expand Up @@ -188,3 +171,31 @@ jobs:
secrets: inherit
with:
mode: "develop"

sql-vortex:
uses: ./.github/workflows/sql-benchmarks.yml
secrets: inherit
with:
mode: "develop"
benchmark_matrix: |
[
{
"id": "vortex-queries",
"subcommand": "vortex",
"name": "Vortex queries",
"data_formats": ["parquet", "vortex"],
"pr_targets": [
{"engine": "datafusion", "format": "parquet"},
{"engine": "datafusion", "format": "vortex"},
{"engine": "duckdb", "format": "parquet"},
{"engine": "duckdb", "format": "vortex"}
],
"develop_targets": [
{"engine": "datafusion", "format": "parquet"},
{"engine": "datafusion", "format": "vortex"},
{"engine": "duckdb", "format": "parquet"},
{"engine": "duckdb", "format": "vortex"}
],
"iterations": "100"
}
]
Loading
Loading