Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
4a30a9c
feat(vortex-row): add row-oriented byte encoder crate
joseph-isaacs Jun 4, 2026
083c7f3
ci(vortex-row): run row_encode benchmarks on CodSpeed
joseph-isaacs Jun 4, 2026
37936e2
vortex-row: skip ListView validation in row encoder output
joseph-isaacs Jun 4, 2026
48b92d1
vortex-row: add validity fast-path helper for the hot encoders
joseph-isaacs Jun 4, 2026
578495d
vortex-row: skip zero-init of the output buffer
joseph-isaacs Jun 4, 2026
6e401b9
vortex-row: auto-vectorize pure-fixed offsets construction
joseph-isaacs Jun 4, 2026
bd781d7
vortex-row: auto-vectorize mixed-path offsets construction
joseph-isaacs Jun 4, 2026
bb39136
vortex-row: rewrite varlen 32-byte block encoder with copy_nonoverlap…
joseph-isaacs Jun 4, 2026
ee049ae
vortex-row: walk VarBinView rows directly in the encoder hot loop
joseph-isaacs Jun 4, 2026
65a24f9
vortex-row: satisfy cast-truncation lints in ported hot paths
joseph-isaacs Jun 4, 2026
2711504
vortex-row: arithmetic-write fast path for fixed-before-varlen columns
joseph-isaacs Jun 4, 2026
2fc07fa
ci(vortex-row): fold row_encode benchmarks into CodSpeed shard 8
joseph-isaacs Jun 5, 2026
b97b7e4
vortex-row: benchmark FSST row-encoding (unpack-then-convert vs phases)
joseph-isaacs Jun 4, 2026
d6f1f4e
vortex-row: rustfmt the fsst row-encode benchmark
joseph-isaacs Jun 4, 2026
43915bd
vortex-row: add fused fast-path FSST row-encode benchmark
joseph-isaacs Jun 4, 2026
2c54e62
vortex-row: add scatter-right fused FSST row-encode benchmark
joseph-isaacs Jun 5, 2026
b3411f1
fix
joseph-isaacs Jun 5, 2026
a213cdd
fix
joseph-isaacs Jun 5, 2026
9e2f143
add row encoder order fuzzer
joseph-isaacs Jun 5, 2026
e1085e9
Merge branch 'develop' into codex/row-encoder-order-fuzzer
joseph-isaacs Jun 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 9 additions & 0 deletions fuzz/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ vortex-error = { workspace = true }
vortex-fsst = { workspace = true }
vortex-io = { workspace = true }
vortex-mask = { workspace = true }
vortex-row = { workspace = true }
vortex-runend = { workspace = true, features = ["arbitrary"] }
vortex-session = { workspace = true }
vortex-utils = { workspace = true }
Expand Down Expand Up @@ -97,6 +98,14 @@ path = "fuzz_targets/fsst_like.rs"
test = false
required-features = ["native"]

[[bin]]
bench = false
doc = false
name = "row_order"
path = "fuzz_targets/row_order.rs"
test = false
required-features = ["native"]

[[bin]]
bench = false
doc = false
Expand Down
18 changes: 18 additions & 0 deletions fuzz/fuzz_targets/row_order.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
// SPDX-License-Identifier: Apache-2.0
// SPDX-FileCopyrightText: Copyright the Vortex contributors

#![no_main]

use libfuzzer_sys::Corpus;
use libfuzzer_sys::fuzz_target;
use vortex_error::vortex_panic;
use vortex_fuzz::FuzzRowOrder;
use vortex_fuzz::run_row_order_fuzz;

fuzz_target!(|fuzz: FuzzRowOrder| -> Corpus {
match run_row_order_fuzz(fuzz) {
Ok(true) => Corpus::Keep,
Ok(false) => Corpus::Reject,
Err(e) => vortex_panic!("{e}"),
}
});
3 changes: 3 additions & 0 deletions fuzz/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ mod array;
pub mod compress;
pub mod error;
pub mod fsst_like;
pub mod row_order;

// File module only available for native builds (requires vortex-file which uses tokio)
#[cfg(not(target_arch = "wasm32"))]
Expand All @@ -31,6 +32,8 @@ pub use fsst_like::run_fsst_like_fuzz;
pub use gpu::FuzzCompressGpu;
#[cfg(feature = "cuda")]
pub use gpu::run_compress_gpu;
pub use row_order::FuzzRowOrder;
pub use row_order::run_row_order_fuzz;

pub const FUZZ_ARRAY_MAX_LEN: usize = 2048;
pub const FUZZ_FILE_ARRAY_MAX_LEN: usize = 16_384;
Expand Down
Loading
Loading