Repository navigation
Simplify error types, remove kind from struct - #10080
Conversation
e45d46e to
824bbb4
Compare
Merging this PR will regress 19 benchmarks4 warnings, 1 note
Warning Please fix the performance issues or acknowledge them on CodSpeed. Performance Changes
Tip Investigate this regression by commenting Comparing Footnotes
|
824bbb4 to
a36c01c
Compare
2ee2c82 to
7f17feb
Compare
Polar Signals Profiling ResultsLatest Run
Powered by Polar Signals Cloud |
commented
Oct 6, 2026
Benchmarks: PolarSignals Profiling 📖Commits: PR datafusion / vortex-file-compressed / ns (0.995x ➖, 0↑ 0↓)
No file size changes detected. |
commented
Oct 6, 2026
Benchmarks: String Encoding 📖Commits: PR vortex / vortex-file-compressed / ms (0.997x ➖, 0↑ 0↓)
vortex / vortex-file-compressed / % (1.000x ➖, 0↑ 0↓)
|
commented
Oct 6, 2026
Benchmarks: FineWeb NVMe 📖Commits: PR How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (1.001x ➖, 0↑ 0↓)
datafusion / vortex-compact / ns (0.911x ➖, 2↑ 2↓)
datafusion / parquet / ns (1.008x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed / ns (1.072x ➖, 1↑ 3↓)
duckdb / vortex-compact / ns (1.093x ➖, 0↑ 2↓)
duckdb / parquet / ns (0.977x ➖, 0↑ 0↓)
No file size changes detected. |
commented
Oct 6, 2026
Benchmarks: TPC-H SF=1 on NVME 📖Commits: PR How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (1.005x ➖, 0↑ 0↓)
datafusion / vortex-compact / ns (0.998x ➖, 0↑ 0↓)
datafusion / parquet / ns (0.999x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed / ns (0.980x ➖, 1↑ 0↓)
duckdb / vortex-compact / ns (0.988x ➖, 0↑ 0↓)
duckdb / parquet / ns (0.996x ➖, 0↑ 0↓)
No file size changes detected. |
commented
Oct 6, 2026
Benchmarks: Clickbench Sorted on NVME 📖Commits: PR How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (0.995x ➖, 1↑ 0↓)
datafusion / vortex-compact / ns (1.003x ➖, 0↑ 1↓)
datafusion / parquet / ns (1.011x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed / ns (0.996x ➖, 0↑ 0↓)
duckdb / vortex-compact / ns (1.014x ➖, 0↑ 1↓)
duckdb / parquet / ns (0.997x ➖, 2↑ 1↓)
File Size Changes (200 files changed, -0.0% overall, 99↑ 101↓)
Totals:
|
commented
Oct 6, 2026
Benchmarks: FineWeb S3 📖Commits: PR How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (0.797x ➖, 2↑ 0↓)
datafusion / vortex-compact / ns (0.824x ➖, 2↑ 0↓)
datafusion / parquet / ns (0.731x ➖, 5↑ 0↓)
duckdb / vortex-file-compressed / ns (0.859x ➖, 2↑ 0↓)
duckdb / vortex-compact / ns (0.912x ➖, 1↑ 0↓)
duckdb / parquet / ns (0.730x ➖, 2↑ 0↓)
|
commented
Oct 6, 2026
Benchmarks: Appian on NVME 📖Commits: PR How to read Verdict and Engines
datafusion / vortex-compact / ns (1.000x ➖, 0↑ 0↓)
datafusion / parquet / ns (1.003x ➖, 0↑ 0↓)
duckdb / vortex-compact / ns (1.010x ➖, 0↑ 0↓)
duckdb / parquet / ns (1.023x ➖, 0↑ 1↓)
No file size changes detected. |
commented
Oct 6, 2026
Benchmarks: Clickbench on NVME 📖Commits: PR How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (0.996x ➖, 0↑ 0↓)
datafusion / vortex-compact / ns (1.001x ➖, 0↑ 0↓)
datafusion / parquet / ns (1.001x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed / ns (0.977x ➖, 3↑ 0↓)
duckdb / vortex-compact / ns (0.995x ➖, 0↑ 0↓)
duckdb / parquet / ns (0.992x ➖, 0↑ 1↓)
No file size changes detected. |
commented
Oct 6, 2026
Benchmarks: TPC-DS SF=1 on NVME 📖Commits: PR How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (0.999x ➖, 0↑ 2↓)
datafusion / vortex-compact / ns (0.992x ➖, 1↑ 0↓)
datafusion / parquet / ns (1.000x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed / ns (1.000x ➖, 2↑ 2↓)
duckdb / vortex-compact / ns (1.000x ➖, 4↑ 3↓)
duckdb / parquet / ns (1.001x ➖, 3↑ 4↓)
No file size changes detected. |
commented
Oct 6, 2026
Benchmarks: TPC-H SF=10 on NVME 📖Commits: PR How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (0.993x ➖, 0↑ 0↓)
datafusion / vortex-compact / ns (0.997x ➖, 0↑ 0↓)
datafusion / parquet / ns (0.999x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed / ns (0.984x ➖, 1↑ 0↓)
duckdb / vortex-compact / ns (0.997x ➖, 0↑ 0↓)
duckdb / parquet / ns (0.996x ➖, 0↑ 0↓)
No file size changes detected. |
commented
Oct 6, 2026
Benchmarks: Statistical and Population Genetics 📖Commits: PR How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (1.009x ➖, 0↑ 1↓)
datafusion / vortex-compact / ns (0.998x ➖, 0↑ 0↓)
datafusion / parquet / ns (0.994x ➖, 0↑ 0↓)
duckdb / vortex-file-compressed / ns (0.991x ➖, 0↑ 0↓)
duckdb / vortex-compact / ns (0.999x ➖, 0↑ 0↓)
duckdb / parquet / ns (1.001x ➖, 0↑ 0↓)
No file size changes detected. |
commented
Oct 6, 2026
Benchmarks: Compression 📖Commits: PR vortex / vortex-file-compressed / ns (0.981x ➖, 0↑ 1↓)
vortex / vortex-file-compressed / bytes (1.000x ➖, 0↑ 0↓)
vortex / vortex-file-compressed / ratio (0.991x ➖, 0↑ 1↓)
vortex / parquet / ns (0.995x ➖, 0↑ 0↓)
vortex / parquet / bytes (1.000x ➖, 0↑ 0↓)
vortex / arrow-ipc / ns (0.951x ➖, 5↑ 0↓)
vortex / arrow-ipc / bytes (1.000x ➖, 0↑ 0↓)
|
commented
Oct 6, 2026
Benchmarks: TPC-H SF=1 on S3 📖Commits: PR How to read Verdict and Engines
datafusion / vortex-file-compressed / ns (0.964x ➖, 5↑ 6↓)
datafusion / vortex-compact / ns (0.896x ➖, 5↑ 3↓)
datafusion / parquet / ns (1.000x ➖, 0↑ 3↓)
duckdb / vortex-file-compressed / ns (0.879x ➖, 6↑ 2↓)
duckdb / vortex-compact / ns (0.880x ➖, 2↑ 1↓)
duckdb / parquet / ns (1.068x ➖, 0↑ 3↓)
|
commented
Oct 6, 2026
Benchmarks: TPC-H SF=10 on S3 📖Commits: PR How to read Verdict and Engines
datafusion / vortex-compact / ns (0.742x ➖, 8↑ 1↓)
datafusion / parquet / ns (0.663x ✅, 15↑ 0↓)
duckdb / vortex-compact / ns (0.907x ➖, 1↑ 1↓)
duckdb / parquet / ns (0.770x ➖, 4↑ 1↓)
|
commented
Oct 6, 2026
Benchmarks: Random Access 📖Commits: PR How to read Verdict and Engines
vortex / arrow-ipc / ns (0.940x ➖, 1↑ 0↓)
random-access / vortex-file-compressed / ns (0.982x ➖, 1↑ 0↓)
random-access / parquet / ns (0.993x ➖, 0↑ 0↓)
random-access / lance / ns (0.988x ➖, 0↑ 0↓)
|
commented
Oct 6, 2026
Benchmarks: Random Access (S3) 📖Commits: PR How to read Verdict and Engines
random-access / vortex-file-compressed / ns (0.934x ➖, 4↑ 4↓)
random-access / parquet / ns (1.049x ➖, 0↑ 1↓)
random-access / lance / ns (0.855x ➖, 3↑ 2↓)
|
243389b to
957acbb
Compare
6478d51 to
59e77bd
Compare
0312f9f to
8c8b6c8
Compare
f89c6b5 to
3115e2c
Compare
VortexError had an enum variant per failure mode and per foreign error type (Arrow, flatbuffers, prost, io, object_store, jiff, ...). Callers rarely branched on the variant, and keeping one per dependency made the type large and the set of variants grow with every new dependency. A VortexError is now a message, an optional source and a backtrace. A foreign error is kept as the source and recovered by downcasting, and context is added in place with with_context. The payload sits behind a single Arc, so VortexError and VortexResult<()> are one pointer wide, which keeps most results in registers on the success path. The error macros take a plain format string, plus the Context: and External: forms. Call sites that used the variant-specific forms now pass a message, and errors that were formatted into new errors now add context instead, so their source and backtrace survive. Tests that matched on a variant now assert on the guard's message. Python raises RuntimeError for every Vortex error, as before. The C API reports VX_ERROR_CODE_OTHER for Vortex errors and VX_ERROR_CODE_PANIC for panics, at their existing values; the other codes are retired, and the C++ ErrorCode mirrors the C enum. Signed-off-by: Robert Kruszewski <github@robertk.io> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01S7EtMqoZ91rrCCh9vS2yTm
3115e2c to
be70183
Compare
Instead of error being an enum we convert an error to be a struct with message and error kind. I had followed the structure of Python errors which have couple error categories https://docs.python.org/3/builtins/exceptions.html#exception-hierarchy majority of which don't apply to this project