Repository navigation
Add decimal benchmarks for DecimalByteParts, casts and exports - #10752
connortsui20 wants to merge 6 commits into
Conversation
Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>
Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>
Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>
Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>
Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>
Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>
Merging this PR will regress 4 benchmarks3 warnings, 1 note
Warning Please fix the performance issues or acknowledge them on CodSpeed. Performance Changes
Tip Investigate this regression by commenting Comparing Footnotes
|
Summary
Adds benchmarks for the decimal paths that #10701 changes, so CodSpeed has a base before those changes land. They cover compute on DecimalByteParts arrays whose most significant part is narrower than the canonical width (decode, compare, filter, sum and min-max), a compressed DecimalByteParts tree in the decompress throughput bench, casts that grow the canonical width, and decimal export to Arrow and DuckDB.
Changes
The DecimalByteParts compute, decompress and cast benches run in CodSpeed. The Arrow and DuckDB export benches run locally only, because those crates have no CodSpeed shard, and the decimal compress bench stays inside the existing
cfg(not(codspeed))module. The compress bench enables the defaultcoreedition, so the decimal scheme uses its v1 variant as in a default write.vortex-duckdbgains a#[doc(hidden)]_benchmarkingmodule that re-exportsArrayExporterandConversionCachefor its bench, and the fields ofConversionCachebecomepub(crate)so that the module exposes only the type. No library behavior changes. Every input is a canonical decimal or a DecimalByteParts array, so the benches stay valid once every decimal array must have the canonical width.🤖 Generated with Claude Code