diff --git a/vortex-btrblocks/public-api.lock b/vortex-btrblocks/public-api.lock index 725307fcbf2..64ae058adc7 100644 --- a/vortex-btrblocks/public-api.lock +++ b/vortex-btrblocks/public-api.lock @@ -56,9 +56,9 @@ impl core::marker::StructuralPartialEq for vortex_btrblocks::schemes::decimal::D impl vortex_compressor::scheme::Scheme for vortex_btrblocks::schemes::decimal::DecimalScheme -pub fn vortex_btrblocks::schemes::decimal::DecimalScheme::compress(&self, compressor: &vortex_compressor::compressor::CascadingCompressor, data: &mut vortex_compressor::stats::cache::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_btrblocks::schemes::decimal::DecimalScheme::compress(&self, compressor: &vortex_compressor::compressor::CascadingCompressor, data: &vortex_compressor::stats::cache::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult -pub fn vortex_btrblocks::schemes::decimal::DecimalScheme::expected_compression_ratio(&self, _data: &mut vortex_compressor::stats::cache::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, _exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate +pub fn vortex_btrblocks::schemes::decimal::DecimalScheme::expected_compression_ratio(&self, _data: &vortex_compressor::stats::cache::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, _exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate pub fn vortex_btrblocks::schemes::decimal::DecimalScheme::matches(&self, canonical: &vortex_array::canonical::Canonical) -> bool @@ -98,9 +98,9 @@ impl core::marker::StructuralPartialEq for vortex_btrblocks::schemes::float::ALP impl vortex_compressor::scheme::Scheme for vortex_btrblocks::schemes::float::ALPRDScheme -pub fn vortex_btrblocks::schemes::float::ALPRDScheme::compress(&self, _compressor: &vortex_compressor::compressor::CascadingCompressor, data: &mut vortex_compressor::stats::cache::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_btrblocks::schemes::float::ALPRDScheme::compress(&self, _compressor: &vortex_compressor::compressor::CascadingCompressor, data: &vortex_compressor::stats::cache::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult -pub fn vortex_btrblocks::schemes::float::ALPRDScheme::expected_compression_ratio(&self, data: &mut vortex_compressor::stats::cache::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, _exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate +pub fn vortex_btrblocks::schemes::float::ALPRDScheme::expected_compression_ratio(&self, data: &vortex_compressor::stats::cache::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, _exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate pub fn vortex_btrblocks::schemes::float::ALPRDScheme::matches(&self, canonical: &vortex_array::canonical::Canonical) -> bool @@ -128,9 +128,9 @@ impl core::marker::StructuralPartialEq for vortex_btrblocks::schemes::float::ALP impl vortex_compressor::scheme::Scheme for vortex_btrblocks::schemes::float::ALPScheme -pub fn vortex_btrblocks::schemes::float::ALPScheme::compress(&self, compressor: &vortex_compressor::compressor::CascadingCompressor, data: &mut vortex_compressor::stats::cache::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_btrblocks::schemes::float::ALPScheme::compress(&self, compressor: &vortex_compressor::compressor::CascadingCompressor, data: &vortex_compressor::stats::cache::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult -pub fn vortex_btrblocks::schemes::float::ALPScheme::expected_compression_ratio(&self, data: &mut vortex_compressor::stats::cache::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, _exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate +pub fn vortex_btrblocks::schemes::float::ALPScheme::expected_compression_ratio(&self, data: &vortex_compressor::stats::cache::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, _exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate pub fn vortex_btrblocks::schemes::float::ALPScheme::matches(&self, canonical: &vortex_array::canonical::Canonical) -> bool @@ -162,11 +162,11 @@ impl vortex_compressor::scheme::Scheme for vortex_btrblocks::schemes::float::Flo pub fn vortex_btrblocks::schemes::float::FloatRLEScheme::ancestor_exclusions(&self) -> alloc::vec::Vec -pub fn vortex_btrblocks::schemes::float::FloatRLEScheme::compress(&self, compressor: &vortex_compressor::compressor::CascadingCompressor, data: &mut vortex_compressor::stats::cache::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_btrblocks::schemes::float::FloatRLEScheme::compress(&self, compressor: &vortex_compressor::compressor::CascadingCompressor, data: &vortex_compressor::stats::cache::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult pub fn vortex_btrblocks::schemes::float::FloatRLEScheme::descendant_exclusions(&self) -> alloc::vec::Vec -pub fn vortex_btrblocks::schemes::float::FloatRLEScheme::expected_compression_ratio(&self, data: &mut vortex_compressor::stats::cache::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate +pub fn vortex_btrblocks::schemes::float::FloatRLEScheme::expected_compression_ratio(&self, data: &vortex_compressor::stats::cache::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate pub fn vortex_btrblocks::schemes::float::FloatRLEScheme::matches(&self, canonical: &vortex_array::canonical::Canonical) -> bool @@ -196,11 +196,11 @@ impl core::marker::StructuralPartialEq for vortex_btrblocks::schemes::float::Nul impl vortex_compressor::scheme::Scheme for vortex_btrblocks::schemes::float::NullDominatedSparseScheme -pub fn vortex_btrblocks::schemes::float::NullDominatedSparseScheme::compress(&self, compressor: &vortex_compressor::compressor::CascadingCompressor, data: &mut vortex_compressor::stats::cache::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_btrblocks::schemes::float::NullDominatedSparseScheme::compress(&self, compressor: &vortex_compressor::compressor::CascadingCompressor, data: &vortex_compressor::stats::cache::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult pub fn vortex_btrblocks::schemes::float::NullDominatedSparseScheme::descendant_exclusions(&self) -> alloc::vec::Vec -pub fn vortex_btrblocks::schemes::float::NullDominatedSparseScheme::expected_compression_ratio(&self, data: &mut vortex_compressor::stats::cache::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate +pub fn vortex_btrblocks::schemes::float::NullDominatedSparseScheme::expected_compression_ratio(&self, data: &vortex_compressor::stats::cache::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate pub fn vortex_btrblocks::schemes::float::NullDominatedSparseScheme::matches(&self, canonical: &vortex_array::canonical::Canonical) -> bool @@ -230,9 +230,9 @@ impl core::marker::StructuralPartialEq for vortex_btrblocks::schemes::float::Pco impl vortex_compressor::scheme::Scheme for vortex_btrblocks::schemes::float::PcoScheme -pub fn vortex_btrblocks::schemes::float::PcoScheme::compress(&self, _compressor: &vortex_compressor::compressor::CascadingCompressor, data: &mut vortex_compressor::stats::cache::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_btrblocks::schemes::float::PcoScheme::compress(&self, _compressor: &vortex_compressor::compressor::CascadingCompressor, data: &vortex_compressor::stats::cache::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult -pub fn vortex_btrblocks::schemes::float::PcoScheme::expected_compression_ratio(&self, _data: &mut vortex_compressor::stats::cache::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, _exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate +pub fn vortex_btrblocks::schemes::float::PcoScheme::expected_compression_ratio(&self, _data: &vortex_compressor::stats::cache::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, _exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate pub fn vortex_btrblocks::schemes::float::PcoScheme::matches(&self, canonical: &vortex_array::canonical::Canonical) -> bool @@ -270,9 +270,9 @@ impl core::marker::StructuralPartialEq for vortex_btrblocks::schemes::integer::B impl vortex_compressor::scheme::Scheme for vortex_btrblocks::schemes::integer::BitPackingScheme -pub fn vortex_btrblocks::schemes::integer::BitPackingScheme::compress(&self, _compressor: &vortex_compressor::compressor::CascadingCompressor, data: &mut vortex_compressor::stats::cache::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_btrblocks::schemes::integer::BitPackingScheme::compress(&self, _compressor: &vortex_compressor::compressor::CascadingCompressor, data: &vortex_compressor::stats::cache::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult -pub fn vortex_btrblocks::schemes::integer::BitPackingScheme::expected_compression_ratio(&self, data: &mut vortex_compressor::stats::cache::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate +pub fn vortex_btrblocks::schemes::integer::BitPackingScheme::expected_compression_ratio(&self, data: &vortex_compressor::stats::cache::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate pub fn vortex_btrblocks::schemes::integer::BitPackingScheme::matches(&self, canonical: &vortex_array::canonical::Canonical) -> bool @@ -302,9 +302,9 @@ impl vortex_compressor::scheme::Scheme for vortex_btrblocks::schemes::integer::F pub fn vortex_btrblocks::schemes::integer::FoRScheme::ancestor_exclusions(&self) -> alloc::vec::Vec -pub fn vortex_btrblocks::schemes::integer::FoRScheme::compress(&self, compressor: &vortex_compressor::compressor::CascadingCompressor, data: &mut vortex_compressor::stats::cache::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_btrblocks::schemes::integer::FoRScheme::compress(&self, compressor: &vortex_compressor::compressor::CascadingCompressor, data: &vortex_compressor::stats::cache::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult -pub fn vortex_btrblocks::schemes::integer::FoRScheme::expected_compression_ratio(&self, data: &mut vortex_compressor::stats::cache::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate +pub fn vortex_btrblocks::schemes::integer::FoRScheme::expected_compression_ratio(&self, data: &vortex_compressor::stats::cache::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate pub fn vortex_btrblocks::schemes::integer::FoRScheme::matches(&self, canonical: &vortex_array::canonical::Canonical) -> bool @@ -334,11 +334,11 @@ impl vortex_compressor::scheme::Scheme for vortex_btrblocks::schemes::integer::I pub fn vortex_btrblocks::schemes::integer::IntRLEScheme::ancestor_exclusions(&self) -> alloc::vec::Vec -pub fn vortex_btrblocks::schemes::integer::IntRLEScheme::compress(&self, compressor: &vortex_compressor::compressor::CascadingCompressor, data: &mut vortex_compressor::stats::cache::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_btrblocks::schemes::integer::IntRLEScheme::compress(&self, compressor: &vortex_compressor::compressor::CascadingCompressor, data: &vortex_compressor::stats::cache::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult pub fn vortex_btrblocks::schemes::integer::IntRLEScheme::descendant_exclusions(&self) -> alloc::vec::Vec -pub fn vortex_btrblocks::schemes::integer::IntRLEScheme::expected_compression_ratio(&self, data: &mut vortex_compressor::stats::cache::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate +pub fn vortex_btrblocks::schemes::integer::IntRLEScheme::expected_compression_ratio(&self, data: &vortex_compressor::stats::cache::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate pub fn vortex_btrblocks::schemes::integer::IntRLEScheme::matches(&self, canonical: &vortex_array::canonical::Canonical) -> bool @@ -368,9 +368,9 @@ impl core::marker::StructuralPartialEq for vortex_btrblocks::schemes::integer::P impl vortex_compressor::scheme::Scheme for vortex_btrblocks::schemes::integer::PcoScheme -pub fn vortex_btrblocks::schemes::integer::PcoScheme::compress(&self, _compressor: &vortex_compressor::compressor::CascadingCompressor, data: &mut vortex_compressor::stats::cache::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_btrblocks::schemes::integer::PcoScheme::compress(&self, _compressor: &vortex_compressor::compressor::CascadingCompressor, data: &vortex_compressor::stats::cache::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult -pub fn vortex_btrblocks::schemes::integer::PcoScheme::expected_compression_ratio(&self, data: &mut vortex_compressor::stats::cache::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, _exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate +pub fn vortex_btrblocks::schemes::integer::PcoScheme::expected_compression_ratio(&self, data: &vortex_compressor::stats::cache::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, _exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate pub fn vortex_btrblocks::schemes::integer::PcoScheme::matches(&self, canonical: &vortex_array::canonical::Canonical) -> bool @@ -400,11 +400,11 @@ impl vortex_compressor::scheme::Scheme for vortex_btrblocks::schemes::integer::R pub fn vortex_btrblocks::schemes::integer::RunEndScheme::ancestor_exclusions(&self) -> alloc::vec::Vec -pub fn vortex_btrblocks::schemes::integer::RunEndScheme::compress(&self, compressor: &vortex_compressor::compressor::CascadingCompressor, data: &mut vortex_compressor::stats::cache::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_btrblocks::schemes::integer::RunEndScheme::compress(&self, compressor: &vortex_compressor::compressor::CascadingCompressor, data: &vortex_compressor::stats::cache::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult pub fn vortex_btrblocks::schemes::integer::RunEndScheme::descendant_exclusions(&self) -> alloc::vec::Vec -pub fn vortex_btrblocks::schemes::integer::RunEndScheme::expected_compression_ratio(&self, data: &mut vortex_compressor::stats::cache::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate +pub fn vortex_btrblocks::schemes::integer::RunEndScheme::expected_compression_ratio(&self, data: &vortex_compressor::stats::cache::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate pub fn vortex_btrblocks::schemes::integer::RunEndScheme::matches(&self, canonical: &vortex_array::canonical::Canonical) -> bool @@ -436,9 +436,9 @@ impl vortex_compressor::scheme::Scheme for vortex_btrblocks::schemes::integer::S pub fn vortex_btrblocks::schemes::integer::SequenceScheme::ancestor_exclusions(&self) -> alloc::vec::Vec -pub fn vortex_btrblocks::schemes::integer::SequenceScheme::compress(&self, _compressor: &vortex_compressor::compressor::CascadingCompressor, data: &mut vortex_compressor::stats::cache::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_btrblocks::schemes::integer::SequenceScheme::compress(&self, _compressor: &vortex_compressor::compressor::CascadingCompressor, data: &vortex_compressor::stats::cache::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult -pub fn vortex_btrblocks::schemes::integer::SequenceScheme::expected_compression_ratio(&self, data: &mut vortex_compressor::stats::cache::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate +pub fn vortex_btrblocks::schemes::integer::SequenceScheme::expected_compression_ratio(&self, data: &vortex_compressor::stats::cache::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate pub fn vortex_btrblocks::schemes::integer::SequenceScheme::matches(&self, canonical: &vortex_array::canonical::Canonical) -> bool @@ -466,11 +466,11 @@ impl core::marker::StructuralPartialEq for vortex_btrblocks::schemes::integer::S impl vortex_compressor::scheme::Scheme for vortex_btrblocks::schemes::integer::SparseScheme -pub fn vortex_btrblocks::schemes::integer::SparseScheme::compress(&self, compressor: &vortex_compressor::compressor::CascadingCompressor, data: &mut vortex_compressor::stats::cache::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_btrblocks::schemes::integer::SparseScheme::compress(&self, compressor: &vortex_compressor::compressor::CascadingCompressor, data: &vortex_compressor::stats::cache::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult pub fn vortex_btrblocks::schemes::integer::SparseScheme::descendant_exclusions(&self) -> alloc::vec::Vec -pub fn vortex_btrblocks::schemes::integer::SparseScheme::expected_compression_ratio(&self, data: &mut vortex_compressor::stats::cache::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate +pub fn vortex_btrblocks::schemes::integer::SparseScheme::expected_compression_ratio(&self, data: &vortex_compressor::stats::cache::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate pub fn vortex_btrblocks::schemes::integer::SparseScheme::matches(&self, canonical: &vortex_array::canonical::Canonical) -> bool @@ -504,11 +504,11 @@ impl vortex_compressor::scheme::Scheme for vortex_btrblocks::schemes::integer::Z pub fn vortex_btrblocks::schemes::integer::ZigZagScheme::ancestor_exclusions(&self) -> alloc::vec::Vec -pub fn vortex_btrblocks::schemes::integer::ZigZagScheme::compress(&self, compressor: &vortex_compressor::compressor::CascadingCompressor, data: &mut vortex_compressor::stats::cache::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_btrblocks::schemes::integer::ZigZagScheme::compress(&self, compressor: &vortex_compressor::compressor::CascadingCompressor, data: &vortex_compressor::stats::cache::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult pub fn vortex_btrblocks::schemes::integer::ZigZagScheme::descendant_exclusions(&self) -> alloc::vec::Vec -pub fn vortex_btrblocks::schemes::integer::ZigZagScheme::expected_compression_ratio(&self, data: &mut vortex_compressor::stats::cache::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate +pub fn vortex_btrblocks::schemes::integer::ZigZagScheme::expected_compression_ratio(&self, data: &vortex_compressor::stats::cache::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate pub fn vortex_btrblocks::schemes::integer::ZigZagScheme::matches(&self, canonical: &vortex_array::canonical::Canonical) -> bool @@ -548,9 +548,9 @@ impl core::marker::StructuralPartialEq for vortex_btrblocks::schemes::string::FS impl vortex_compressor::scheme::Scheme for vortex_btrblocks::schemes::string::FSSTScheme -pub fn vortex_btrblocks::schemes::string::FSSTScheme::compress(&self, compressor: &vortex_compressor::compressor::CascadingCompressor, data: &mut vortex_compressor::stats::cache::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_btrblocks::schemes::string::FSSTScheme::compress(&self, compressor: &vortex_compressor::compressor::CascadingCompressor, data: &vortex_compressor::stats::cache::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult -pub fn vortex_btrblocks::schemes::string::FSSTScheme::expected_compression_ratio(&self, _data: &mut vortex_compressor::stats::cache::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, _exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate +pub fn vortex_btrblocks::schemes::string::FSSTScheme::expected_compression_ratio(&self, _data: &vortex_compressor::stats::cache::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, _exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate pub fn vortex_btrblocks::schemes::string::FSSTScheme::matches(&self, canonical: &vortex_array::canonical::Canonical) -> bool @@ -580,11 +580,11 @@ impl core::marker::StructuralPartialEq for vortex_btrblocks::schemes::string::Nu impl vortex_compressor::scheme::Scheme for vortex_btrblocks::schemes::string::NullDominatedSparseScheme -pub fn vortex_btrblocks::schemes::string::NullDominatedSparseScheme::compress(&self, compressor: &vortex_compressor::compressor::CascadingCompressor, data: &mut vortex_compressor::stats::cache::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_btrblocks::schemes::string::NullDominatedSparseScheme::compress(&self, compressor: &vortex_compressor::compressor::CascadingCompressor, data: &vortex_compressor::stats::cache::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult pub fn vortex_btrblocks::schemes::string::NullDominatedSparseScheme::descendant_exclusions(&self) -> alloc::vec::Vec -pub fn vortex_btrblocks::schemes::string::NullDominatedSparseScheme::expected_compression_ratio(&self, data: &mut vortex_compressor::stats::cache::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate +pub fn vortex_btrblocks::schemes::string::NullDominatedSparseScheme::expected_compression_ratio(&self, data: &vortex_compressor::stats::cache::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate pub fn vortex_btrblocks::schemes::string::NullDominatedSparseScheme::matches(&self, canonical: &vortex_array::canonical::Canonical) -> bool @@ -614,9 +614,9 @@ impl core::marker::StructuralPartialEq for vortex_btrblocks::schemes::string::Zs impl vortex_compressor::scheme::Scheme for vortex_btrblocks::schemes::string::ZstdScheme -pub fn vortex_btrblocks::schemes::string::ZstdScheme::compress(&self, _compressor: &vortex_compressor::compressor::CascadingCompressor, data: &mut vortex_compressor::stats::cache::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_btrblocks::schemes::string::ZstdScheme::compress(&self, _compressor: &vortex_compressor::compressor::CascadingCompressor, data: &vortex_compressor::stats::cache::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult -pub fn vortex_btrblocks::schemes::string::ZstdScheme::expected_compression_ratio(&self, _data: &mut vortex_compressor::stats::cache::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, _exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate +pub fn vortex_btrblocks::schemes::string::ZstdScheme::expected_compression_ratio(&self, _data: &vortex_compressor::stats::cache::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, _exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate pub fn vortex_btrblocks::schemes::string::ZstdScheme::matches(&self, canonical: &vortex_array::canonical::Canonical) -> bool @@ -646,9 +646,9 @@ impl core::marker::StructuralPartialEq for vortex_btrblocks::schemes::temporal:: impl vortex_compressor::scheme::Scheme for vortex_btrblocks::schemes::temporal::TemporalScheme -pub fn vortex_btrblocks::schemes::temporal::TemporalScheme::compress(&self, compressor: &vortex_compressor::compressor::CascadingCompressor, data: &mut vortex_compressor::stats::cache::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_btrblocks::schemes::temporal::TemporalScheme::compress(&self, compressor: &vortex_compressor::compressor::CascadingCompressor, data: &vortex_compressor::stats::cache::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult -pub fn vortex_btrblocks::schemes::temporal::TemporalScheme::expected_compression_ratio(&self, _data: &mut vortex_compressor::stats::cache::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, _exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate +pub fn vortex_btrblocks::schemes::temporal::TemporalScheme::expected_compression_ratio(&self, _data: &vortex_compressor::stats::cache::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, _exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate pub fn vortex_btrblocks::schemes::temporal::TemporalScheme::matches(&self, canonical: &vortex_array::canonical::Canonical) -> bool diff --git a/vortex-btrblocks/src/schemes/decimal.rs b/vortex-btrblocks/src/schemes/decimal.rs index 47d18f80860..d60e5c6b175 100644 --- a/vortex-btrblocks/src/schemes/decimal.rs +++ b/vortex-btrblocks/src/schemes/decimal.rs @@ -45,7 +45,7 @@ impl Scheme for DecimalScheme { fn expected_compression_ratio( &self, - _data: &mut ArrayAndStats, + _data: &ArrayAndStats, _compress_ctx: CompressorContext, _exec_ctx: &mut ExecutionCtx, ) -> CompressionEstimate { @@ -56,7 +56,7 @@ impl Scheme for DecimalScheme { fn compress( &self, compressor: &CascadingCompressor, - data: &mut ArrayAndStats, + data: &ArrayAndStats, compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> VortexResult { diff --git a/vortex-btrblocks/src/schemes/float.rs b/vortex-btrblocks/src/schemes/float.rs index be3bf69df75..8c55b38d345 100644 --- a/vortex-btrblocks/src/schemes/float.rs +++ b/vortex-btrblocks/src/schemes/float.rs @@ -83,7 +83,7 @@ impl Scheme for ALPScheme { fn expected_compression_ratio( &self, - data: &mut ArrayAndStats, + data: &ArrayAndStats, compress_ctx: CompressorContext, _exec_ctx: &mut ExecutionCtx, ) -> CompressionEstimate { @@ -104,7 +104,7 @@ impl Scheme for ALPScheme { fn compress( &self, compressor: &CascadingCompressor, - data: &mut ArrayAndStats, + data: &ArrayAndStats, compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> VortexResult { @@ -156,7 +156,7 @@ impl Scheme for ALPRDScheme { fn expected_compression_ratio( &self, - data: &mut ArrayAndStats, + data: &ArrayAndStats, _compress_ctx: CompressorContext, _exec_ctx: &mut ExecutionCtx, ) -> CompressionEstimate { @@ -171,7 +171,7 @@ impl Scheme for ALPRDScheme { fn compress( &self, _compressor: &CascadingCompressor, - data: &mut ArrayAndStats, + data: &ArrayAndStats, _compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> VortexResult { @@ -229,7 +229,7 @@ impl Scheme for NullDominatedSparseScheme { fn expected_compression_ratio( &self, - data: &mut ArrayAndStats, + data: &ArrayAndStats, _compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> CompressionEstimate { @@ -254,7 +254,7 @@ impl Scheme for NullDominatedSparseScheme { fn compress( &self, compressor: &CascadingCompressor, - data: &mut ArrayAndStats, + data: &ArrayAndStats, compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> VortexResult { @@ -301,7 +301,7 @@ impl Scheme for PcoScheme { fn expected_compression_ratio( &self, - _data: &mut ArrayAndStats, + _data: &ArrayAndStats, _compress_ctx: CompressorContext, _exec_ctx: &mut ExecutionCtx, ) -> CompressionEstimate { @@ -311,7 +311,7 @@ impl Scheme for PcoScheme { fn compress( &self, _compressor: &CascadingCompressor, - data: &mut ArrayAndStats, + data: &ArrayAndStats, _compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> VortexResult { @@ -349,7 +349,7 @@ impl Scheme for FloatRLEScheme { fn expected_compression_ratio( &self, - data: &mut ArrayAndStats, + data: &ArrayAndStats, compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> CompressionEstimate { @@ -368,7 +368,7 @@ impl Scheme for FloatRLEScheme { fn compress( &self, compressor: &CascadingCompressor, - data: &mut ArrayAndStats, + data: &ArrayAndStats, compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> VortexResult { diff --git a/vortex-btrblocks/src/schemes/integer.rs b/vortex-btrblocks/src/schemes/integer.rs index 69dee5be17c..7e6c3503239 100644 --- a/vortex-btrblocks/src/schemes/integer.rs +++ b/vortex-btrblocks/src/schemes/integer.rs @@ -129,7 +129,7 @@ impl Scheme for FoRScheme { fn expected_compression_ratio( &self, - data: &mut ArrayAndStats, + data: &ArrayAndStats, compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> CompressionEstimate { @@ -182,7 +182,7 @@ impl Scheme for FoRScheme { fn compress( &self, compressor: &CascadingCompressor, - data: &mut ArrayAndStats, + data: &ArrayAndStats, compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> VortexResult { @@ -198,10 +198,9 @@ impl Scheme for FoRScheme { // NOTE: we could delegate in the future if we had another downstream codec that performs // as well. let leaf_ctx = compress_ctx.clone().as_leaf(); - let mut biased_data = + let biased_data = ArrayAndStats::new(biased.into_array(), compress_ctx.merged_stats_options()); - let compressed = - BitPackingScheme.compress(compressor, &mut biased_data, leaf_ctx, exec_ctx)?; + let compressed = BitPackingScheme.compress(compressor, &biased_data, leaf_ctx, exec_ctx)?; // TODO(connor): This should really be `new_unchecked`. let for_compressed = FoR::try_new(compressed, for_array.reference_scalar().clone())?; @@ -268,7 +267,7 @@ impl Scheme for ZigZagScheme { fn expected_compression_ratio( &self, - data: &mut ArrayAndStats, + data: &ArrayAndStats, compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> CompressionEstimate { @@ -290,7 +289,7 @@ impl Scheme for ZigZagScheme { fn compress( &self, compressor: &CascadingCompressor, - data: &mut ArrayAndStats, + data: &ArrayAndStats, compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> VortexResult { @@ -321,7 +320,7 @@ impl Scheme for BitPackingScheme { fn expected_compression_ratio( &self, - data: &mut ArrayAndStats, + data: &ArrayAndStats, _compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> CompressionEstimate { @@ -338,7 +337,7 @@ impl Scheme for BitPackingScheme { fn compress( &self, _compressor: &CascadingCompressor, - data: &mut ArrayAndStats, + data: &ArrayAndStats, _compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> VortexResult { @@ -450,7 +449,7 @@ impl Scheme for SparseScheme { fn expected_compression_ratio( &self, - data: &mut ArrayAndStats, + data: &ArrayAndStats, _compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> CompressionEstimate { @@ -496,13 +495,12 @@ impl Scheme for SparseScheme { fn compress( &self, compressor: &CascadingCompressor, - data: &mut ArrayAndStats, + data: &ArrayAndStats, compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> VortexResult { let len = data.array_len(); - // TODO(connor): Fight the borrow checker (needs interior mutability)! - let stats = data.integer_stats(exec_ctx).clone(); + let stats = data.integer_stats(exec_ctx); let array = data.array(); let (most_frequent_value, most_frequent_count) = stats @@ -635,7 +633,7 @@ impl Scheme for RunEndScheme { fn expected_compression_ratio( &self, - data: &mut ArrayAndStats, + data: &ArrayAndStats, _compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> CompressionEstimate { @@ -650,7 +648,7 @@ impl Scheme for RunEndScheme { fn compress( &self, compressor: &CascadingCompressor, - data: &mut ArrayAndStats, + data: &ArrayAndStats, compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> VortexResult { @@ -714,7 +712,7 @@ impl Scheme for SequenceScheme { fn expected_compression_ratio( &self, - data: &mut ArrayAndStats, + data: &ArrayAndStats, compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> CompressionEstimate { @@ -760,7 +758,7 @@ impl Scheme for SequenceScheme { fn compress( &self, _compressor: &CascadingCompressor, - data: &mut ArrayAndStats, + data: &ArrayAndStats, _compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> VortexResult { @@ -786,7 +784,7 @@ impl Scheme for PcoScheme { fn expected_compression_ratio( &self, - data: &mut ArrayAndStats, + data: &ArrayAndStats, _compress_ctx: CompressorContext, _exec_ctx: &mut ExecutionCtx, ) -> CompressionEstimate { @@ -803,7 +801,7 @@ impl Scheme for PcoScheme { fn compress( &self, _compressor: &CascadingCompressor, - data: &mut ArrayAndStats, + data: &ArrayAndStats, _compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> VortexResult { @@ -821,7 +819,7 @@ impl Scheme for PcoScheme { pub(crate) fn rle_compress( scheme: &dyn Scheme, compressor: &CascadingCompressor, - data: &mut ArrayAndStats, + data: &ArrayAndStats, compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> VortexResult { @@ -953,7 +951,7 @@ impl Scheme for IntRLEScheme { fn expected_compression_ratio( &self, - data: &mut ArrayAndStats, + data: &ArrayAndStats, compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> CompressionEstimate { @@ -971,7 +969,7 @@ impl Scheme for IntRLEScheme { fn compress( &self, compressor: &CascadingCompressor, - data: &mut ArrayAndStats, + data: &ArrayAndStats, compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> VortexResult { diff --git a/vortex-btrblocks/src/schemes/string.rs b/vortex-btrblocks/src/schemes/string.rs index 037d8979d59..0df5a268157 100644 --- a/vortex-btrblocks/src/schemes/string.rs +++ b/vortex-btrblocks/src/schemes/string.rs @@ -73,7 +73,7 @@ impl Scheme for FSSTScheme { fn expected_compression_ratio( &self, - _data: &mut ArrayAndStats, + _data: &ArrayAndStats, _compress_ctx: CompressorContext, _exec_ctx: &mut ExecutionCtx, ) -> CompressionEstimate { @@ -83,7 +83,7 @@ impl Scheme for FSSTScheme { fn compress( &self, compressor: &CascadingCompressor, - data: &mut ArrayAndStats, + data: &ArrayAndStats, compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> VortexResult { @@ -167,7 +167,7 @@ impl Scheme for NullDominatedSparseScheme { fn expected_compression_ratio( &self, - data: &mut ArrayAndStats, + data: &ArrayAndStats, _compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> CompressionEstimate { @@ -192,7 +192,7 @@ impl Scheme for NullDominatedSparseScheme { fn compress( &self, compressor: &CascadingCompressor, - data: &mut ArrayAndStats, + data: &ArrayAndStats, compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> VortexResult { @@ -240,7 +240,7 @@ impl Scheme for ZstdScheme { fn expected_compression_ratio( &self, - _data: &mut ArrayAndStats, + _data: &ArrayAndStats, _compress_ctx: CompressorContext, _exec_ctx: &mut ExecutionCtx, ) -> CompressionEstimate { @@ -250,7 +250,7 @@ impl Scheme for ZstdScheme { fn compress( &self, _compressor: &CascadingCompressor, - data: &mut ArrayAndStats, + data: &ArrayAndStats, _compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> VortexResult { @@ -274,7 +274,7 @@ impl Scheme for ZstdBuffersScheme { fn expected_compression_ratio( &self, - _data: &mut ArrayAndStats, + _data: &ArrayAndStats, _compress_ctx: CompressorContext, _exec_ctx: &mut ExecutionCtx, ) -> CompressionEstimate { @@ -284,7 +284,7 @@ impl Scheme for ZstdBuffersScheme { fn compress( &self, _compressor: &CascadingCompressor, - data: &mut ArrayAndStats, + data: &ArrayAndStats, _compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> VortexResult { diff --git a/vortex-btrblocks/src/schemes/temporal.rs b/vortex-btrblocks/src/schemes/temporal.rs index 6405baeff40..73671da0ff3 100644 --- a/vortex-btrblocks/src/schemes/temporal.rs +++ b/vortex-btrblocks/src/schemes/temporal.rs @@ -61,7 +61,7 @@ impl Scheme for TemporalScheme { fn expected_compression_ratio( &self, - _data: &mut ArrayAndStats, + _data: &ArrayAndStats, _compress_ctx: CompressorContext, _exec_ctx: &mut ExecutionCtx, ) -> CompressionEstimate { @@ -72,7 +72,7 @@ impl Scheme for TemporalScheme { fn compress( &self, compressor: &CascadingCompressor, - data: &mut ArrayAndStats, + data: &ArrayAndStats, compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> VortexResult { diff --git a/vortex-compressor/public-api.lock b/vortex-compressor/public-api.lock index 116cfba31f2..05cbad5ad6f 100644 --- a/vortex-compressor/public-api.lock +++ b/vortex-compressor/public-api.lock @@ -26,11 +26,11 @@ impl vortex_compressor::scheme::Scheme for vortex_compressor::builtins::BoolCons pub fn vortex_compressor::builtins::BoolConstantScheme::ancestor_exclusions(&self) -> alloc::vec::Vec -pub fn vortex_compressor::builtins::BoolConstantScheme::compress(&self, _compressor: &vortex_compressor::CascadingCompressor, data: &mut vortex_compressor::stats::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_compressor::builtins::BoolConstantScheme::compress(&self, _compressor: &vortex_compressor::CascadingCompressor, data: &vortex_compressor::stats::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult pub fn vortex_compressor::builtins::BoolConstantScheme::descendant_exclusions(&self) -> alloc::vec::Vec -pub fn vortex_compressor::builtins::BoolConstantScheme::expected_compression_ratio(&self, data: &mut vortex_compressor::stats::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate +pub fn vortex_compressor::builtins::BoolConstantScheme::expected_compression_ratio(&self, data: &vortex_compressor::stats::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate pub fn vortex_compressor::builtins::BoolConstantScheme::matches(&self, canonical: &vortex_array::canonical::Canonical) -> bool @@ -64,11 +64,11 @@ impl vortex_compressor::scheme::Scheme for vortex_compressor::builtins::FloatCon pub fn vortex_compressor::builtins::FloatConstantScheme::ancestor_exclusions(&self) -> alloc::vec::Vec -pub fn vortex_compressor::builtins::FloatConstantScheme::compress(&self, _compressor: &vortex_compressor::CascadingCompressor, data: &mut vortex_compressor::stats::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_compressor::builtins::FloatConstantScheme::compress(&self, _compressor: &vortex_compressor::CascadingCompressor, data: &vortex_compressor::stats::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult pub fn vortex_compressor::builtins::FloatConstantScheme::descendant_exclusions(&self) -> alloc::vec::Vec -pub fn vortex_compressor::builtins::FloatConstantScheme::expected_compression_ratio(&self, data: &mut vortex_compressor::stats::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate +pub fn vortex_compressor::builtins::FloatConstantScheme::expected_compression_ratio(&self, data: &vortex_compressor::stats::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate pub fn vortex_compressor::builtins::FloatConstantScheme::matches(&self, canonical: &vortex_array::canonical::Canonical) -> bool @@ -102,11 +102,11 @@ impl vortex_compressor::scheme::Scheme for vortex_compressor::builtins::FloatDic pub fn vortex_compressor::builtins::FloatDictScheme::ancestor_exclusions(&self) -> alloc::vec::Vec -pub fn vortex_compressor::builtins::FloatDictScheme::compress(&self, compressor: &vortex_compressor::CascadingCompressor, data: &mut vortex_compressor::stats::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_compressor::builtins::FloatDictScheme::compress(&self, compressor: &vortex_compressor::CascadingCompressor, data: &vortex_compressor::stats::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult pub fn vortex_compressor::builtins::FloatDictScheme::descendant_exclusions(&self) -> alloc::vec::Vec -pub fn vortex_compressor::builtins::FloatDictScheme::expected_compression_ratio(&self, data: &mut vortex_compressor::stats::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate +pub fn vortex_compressor::builtins::FloatDictScheme::expected_compression_ratio(&self, data: &vortex_compressor::stats::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate pub fn vortex_compressor::builtins::FloatDictScheme::matches(&self, canonical: &vortex_array::canonical::Canonical) -> bool @@ -140,11 +140,11 @@ impl vortex_compressor::scheme::Scheme for vortex_compressor::builtins::IntConst pub fn vortex_compressor::builtins::IntConstantScheme::ancestor_exclusions(&self) -> alloc::vec::Vec -pub fn vortex_compressor::builtins::IntConstantScheme::compress(&self, _compressor: &vortex_compressor::CascadingCompressor, data: &mut vortex_compressor::stats::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_compressor::builtins::IntConstantScheme::compress(&self, _compressor: &vortex_compressor::CascadingCompressor, data: &vortex_compressor::stats::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult pub fn vortex_compressor::builtins::IntConstantScheme::descendant_exclusions(&self) -> alloc::vec::Vec -pub fn vortex_compressor::builtins::IntConstantScheme::expected_compression_ratio(&self, data: &mut vortex_compressor::stats::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate +pub fn vortex_compressor::builtins::IntConstantScheme::expected_compression_ratio(&self, data: &vortex_compressor::stats::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate pub fn vortex_compressor::builtins::IntConstantScheme::matches(&self, canonical: &vortex_array::canonical::Canonical) -> bool @@ -178,11 +178,11 @@ impl vortex_compressor::scheme::Scheme for vortex_compressor::builtins::IntDictS pub fn vortex_compressor::builtins::IntDictScheme::ancestor_exclusions(&self) -> alloc::vec::Vec -pub fn vortex_compressor::builtins::IntDictScheme::compress(&self, compressor: &vortex_compressor::CascadingCompressor, data: &mut vortex_compressor::stats::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_compressor::builtins::IntDictScheme::compress(&self, compressor: &vortex_compressor::CascadingCompressor, data: &vortex_compressor::stats::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult pub fn vortex_compressor::builtins::IntDictScheme::descendant_exclusions(&self) -> alloc::vec::Vec -pub fn vortex_compressor::builtins::IntDictScheme::expected_compression_ratio(&self, data: &mut vortex_compressor::stats::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate +pub fn vortex_compressor::builtins::IntDictScheme::expected_compression_ratio(&self, data: &vortex_compressor::stats::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate pub fn vortex_compressor::builtins::IntDictScheme::matches(&self, canonical: &vortex_array::canonical::Canonical) -> bool @@ -216,11 +216,11 @@ impl vortex_compressor::scheme::Scheme for vortex_compressor::builtins::StringCo pub fn vortex_compressor::builtins::StringConstantScheme::ancestor_exclusions(&self) -> alloc::vec::Vec -pub fn vortex_compressor::builtins::StringConstantScheme::compress(&self, _compressor: &vortex_compressor::CascadingCompressor, data: &mut vortex_compressor::stats::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_compressor::builtins::StringConstantScheme::compress(&self, _compressor: &vortex_compressor::CascadingCompressor, data: &vortex_compressor::stats::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult pub fn vortex_compressor::builtins::StringConstantScheme::descendant_exclusions(&self) -> alloc::vec::Vec -pub fn vortex_compressor::builtins::StringConstantScheme::expected_compression_ratio(&self, data: &mut vortex_compressor::stats::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate +pub fn vortex_compressor::builtins::StringConstantScheme::expected_compression_ratio(&self, data: &vortex_compressor::stats::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate pub fn vortex_compressor::builtins::StringConstantScheme::matches(&self, canonical: &vortex_array::canonical::Canonical) -> bool @@ -254,11 +254,11 @@ impl vortex_compressor::scheme::Scheme for vortex_compressor::builtins::StringDi pub fn vortex_compressor::builtins::StringDictScheme::ancestor_exclusions(&self) -> alloc::vec::Vec -pub fn vortex_compressor::builtins::StringDictScheme::compress(&self, compressor: &vortex_compressor::CascadingCompressor, data: &mut vortex_compressor::stats::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_compressor::builtins::StringDictScheme::compress(&self, compressor: &vortex_compressor::CascadingCompressor, data: &vortex_compressor::stats::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult pub fn vortex_compressor::builtins::StringDictScheme::descendant_exclusions(&self) -> alloc::vec::Vec -pub fn vortex_compressor::builtins::StringDictScheme::expected_compression_ratio(&self, data: &mut vortex_compressor::stats::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate +pub fn vortex_compressor::builtins::StringDictScheme::expected_compression_ratio(&self, data: &vortex_compressor::stats::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate pub fn vortex_compressor::builtins::StringDictScheme::matches(&self, canonical: &vortex_array::canonical::Canonical) -> bool @@ -338,7 +338,7 @@ impl core::fmt::Debug for vortex_compressor::estimate::EstimateVerdict pub fn vortex_compressor::estimate::EstimateVerdict::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result -pub type vortex_compressor::estimate::EstimateFn = (dyn core::ops::function::FnOnce(&vortex_compressor::CascadingCompressor, &mut vortex_compressor::stats::ArrayAndStats, vortex_compressor::ctx::CompressorContext, &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult + core::marker::Send + core::marker::Sync) +pub type vortex_compressor::estimate::EstimateFn = (dyn core::ops::function::FnOnce(&vortex_compressor::CascadingCompressor, &vortex_compressor::stats::ArrayAndStats, vortex_compressor::ctx::CompressorContext, &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult + core::marker::Send + core::marker::Sync) pub mod vortex_compressor::scheme @@ -428,11 +428,11 @@ pub trait vortex_compressor::scheme::Scheme: core::fmt::Debug + core::marker::Se pub fn vortex_compressor::scheme::Scheme::ancestor_exclusions(&self) -> alloc::vec::Vec -pub fn vortex_compressor::scheme::Scheme::compress(&self, compressor: &vortex_compressor::CascadingCompressor, data: &mut vortex_compressor::stats::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_compressor::scheme::Scheme::compress(&self, compressor: &vortex_compressor::CascadingCompressor, data: &vortex_compressor::stats::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult pub fn vortex_compressor::scheme::Scheme::descendant_exclusions(&self) -> alloc::vec::Vec -pub fn vortex_compressor::scheme::Scheme::expected_compression_ratio(&self, _data: &mut vortex_compressor::stats::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, _exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate +pub fn vortex_compressor::scheme::Scheme::expected_compression_ratio(&self, _data: &vortex_compressor::stats::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, _exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate pub fn vortex_compressor::scheme::Scheme::matches(&self, canonical: &vortex_array::canonical::Canonical) -> bool @@ -446,11 +446,11 @@ impl vortex_compressor::scheme::Scheme for vortex_compressor::builtins::BoolCons pub fn vortex_compressor::builtins::BoolConstantScheme::ancestor_exclusions(&self) -> alloc::vec::Vec -pub fn vortex_compressor::builtins::BoolConstantScheme::compress(&self, _compressor: &vortex_compressor::CascadingCompressor, data: &mut vortex_compressor::stats::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_compressor::builtins::BoolConstantScheme::compress(&self, _compressor: &vortex_compressor::CascadingCompressor, data: &vortex_compressor::stats::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult pub fn vortex_compressor::builtins::BoolConstantScheme::descendant_exclusions(&self) -> alloc::vec::Vec -pub fn vortex_compressor::builtins::BoolConstantScheme::expected_compression_ratio(&self, data: &mut vortex_compressor::stats::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate +pub fn vortex_compressor::builtins::BoolConstantScheme::expected_compression_ratio(&self, data: &vortex_compressor::stats::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate pub fn vortex_compressor::builtins::BoolConstantScheme::matches(&self, canonical: &vortex_array::canonical::Canonical) -> bool @@ -464,11 +464,11 @@ impl vortex_compressor::scheme::Scheme for vortex_compressor::builtins::FloatCon pub fn vortex_compressor::builtins::FloatConstantScheme::ancestor_exclusions(&self) -> alloc::vec::Vec -pub fn vortex_compressor::builtins::FloatConstantScheme::compress(&self, _compressor: &vortex_compressor::CascadingCompressor, data: &mut vortex_compressor::stats::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_compressor::builtins::FloatConstantScheme::compress(&self, _compressor: &vortex_compressor::CascadingCompressor, data: &vortex_compressor::stats::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult pub fn vortex_compressor::builtins::FloatConstantScheme::descendant_exclusions(&self) -> alloc::vec::Vec -pub fn vortex_compressor::builtins::FloatConstantScheme::expected_compression_ratio(&self, data: &mut vortex_compressor::stats::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate +pub fn vortex_compressor::builtins::FloatConstantScheme::expected_compression_ratio(&self, data: &vortex_compressor::stats::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate pub fn vortex_compressor::builtins::FloatConstantScheme::matches(&self, canonical: &vortex_array::canonical::Canonical) -> bool @@ -482,11 +482,11 @@ impl vortex_compressor::scheme::Scheme for vortex_compressor::builtins::FloatDic pub fn vortex_compressor::builtins::FloatDictScheme::ancestor_exclusions(&self) -> alloc::vec::Vec -pub fn vortex_compressor::builtins::FloatDictScheme::compress(&self, compressor: &vortex_compressor::CascadingCompressor, data: &mut vortex_compressor::stats::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_compressor::builtins::FloatDictScheme::compress(&self, compressor: &vortex_compressor::CascadingCompressor, data: &vortex_compressor::stats::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult pub fn vortex_compressor::builtins::FloatDictScheme::descendant_exclusions(&self) -> alloc::vec::Vec -pub fn vortex_compressor::builtins::FloatDictScheme::expected_compression_ratio(&self, data: &mut vortex_compressor::stats::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate +pub fn vortex_compressor::builtins::FloatDictScheme::expected_compression_ratio(&self, data: &vortex_compressor::stats::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate pub fn vortex_compressor::builtins::FloatDictScheme::matches(&self, canonical: &vortex_array::canonical::Canonical) -> bool @@ -500,11 +500,11 @@ impl vortex_compressor::scheme::Scheme for vortex_compressor::builtins::IntConst pub fn vortex_compressor::builtins::IntConstantScheme::ancestor_exclusions(&self) -> alloc::vec::Vec -pub fn vortex_compressor::builtins::IntConstantScheme::compress(&self, _compressor: &vortex_compressor::CascadingCompressor, data: &mut vortex_compressor::stats::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_compressor::builtins::IntConstantScheme::compress(&self, _compressor: &vortex_compressor::CascadingCompressor, data: &vortex_compressor::stats::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult pub fn vortex_compressor::builtins::IntConstantScheme::descendant_exclusions(&self) -> alloc::vec::Vec -pub fn vortex_compressor::builtins::IntConstantScheme::expected_compression_ratio(&self, data: &mut vortex_compressor::stats::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate +pub fn vortex_compressor::builtins::IntConstantScheme::expected_compression_ratio(&self, data: &vortex_compressor::stats::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate pub fn vortex_compressor::builtins::IntConstantScheme::matches(&self, canonical: &vortex_array::canonical::Canonical) -> bool @@ -518,11 +518,11 @@ impl vortex_compressor::scheme::Scheme for vortex_compressor::builtins::IntDictS pub fn vortex_compressor::builtins::IntDictScheme::ancestor_exclusions(&self) -> alloc::vec::Vec -pub fn vortex_compressor::builtins::IntDictScheme::compress(&self, compressor: &vortex_compressor::CascadingCompressor, data: &mut vortex_compressor::stats::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_compressor::builtins::IntDictScheme::compress(&self, compressor: &vortex_compressor::CascadingCompressor, data: &vortex_compressor::stats::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult pub fn vortex_compressor::builtins::IntDictScheme::descendant_exclusions(&self) -> alloc::vec::Vec -pub fn vortex_compressor::builtins::IntDictScheme::expected_compression_ratio(&self, data: &mut vortex_compressor::stats::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate +pub fn vortex_compressor::builtins::IntDictScheme::expected_compression_ratio(&self, data: &vortex_compressor::stats::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate pub fn vortex_compressor::builtins::IntDictScheme::matches(&self, canonical: &vortex_array::canonical::Canonical) -> bool @@ -536,11 +536,11 @@ impl vortex_compressor::scheme::Scheme for vortex_compressor::builtins::StringCo pub fn vortex_compressor::builtins::StringConstantScheme::ancestor_exclusions(&self) -> alloc::vec::Vec -pub fn vortex_compressor::builtins::StringConstantScheme::compress(&self, _compressor: &vortex_compressor::CascadingCompressor, data: &mut vortex_compressor::stats::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_compressor::builtins::StringConstantScheme::compress(&self, _compressor: &vortex_compressor::CascadingCompressor, data: &vortex_compressor::stats::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult pub fn vortex_compressor::builtins::StringConstantScheme::descendant_exclusions(&self) -> alloc::vec::Vec -pub fn vortex_compressor::builtins::StringConstantScheme::expected_compression_ratio(&self, data: &mut vortex_compressor::stats::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate +pub fn vortex_compressor::builtins::StringConstantScheme::expected_compression_ratio(&self, data: &vortex_compressor::stats::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate pub fn vortex_compressor::builtins::StringConstantScheme::matches(&self, canonical: &vortex_array::canonical::Canonical) -> bool @@ -554,11 +554,11 @@ impl vortex_compressor::scheme::Scheme for vortex_compressor::builtins::StringDi pub fn vortex_compressor::builtins::StringDictScheme::ancestor_exclusions(&self) -> alloc::vec::Vec -pub fn vortex_compressor::builtins::StringDictScheme::compress(&self, compressor: &vortex_compressor::CascadingCompressor, data: &mut vortex_compressor::stats::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_compressor::builtins::StringDictScheme::compress(&self, compressor: &vortex_compressor::CascadingCompressor, data: &vortex_compressor::stats::ArrayAndStats, compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult pub fn vortex_compressor::builtins::StringDictScheme::descendant_exclusions(&self) -> alloc::vec::Vec -pub fn vortex_compressor::builtins::StringDictScheme::expected_compression_ratio(&self, data: &mut vortex_compressor::stats::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate +pub fn vortex_compressor::builtins::StringDictScheme::expected_compression_ratio(&self, data: &vortex_compressor::stats::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate pub fn vortex_compressor::builtins::StringDictScheme::matches(&self, canonical: &vortex_array::canonical::Canonical) -> bool @@ -690,19 +690,19 @@ pub fn vortex_compressor::stats::ArrayAndStats::array_as_utf8(&self) -> vortex_a pub fn vortex_compressor::stats::ArrayAndStats::array_len(&self) -> usize -pub fn vortex_compressor::stats::ArrayAndStats::bool_stats(&mut self, ctx: &mut vortex_array::executor::ExecutionCtx) -> &vortex_compressor::stats::BoolStats +pub fn vortex_compressor::stats::ArrayAndStats::bool_stats(&self, ctx: &mut vortex_array::executor::ExecutionCtx) -> alloc::sync::Arc -pub fn vortex_compressor::stats::ArrayAndStats::float_stats(&mut self, ctx: &mut vortex_array::executor::ExecutionCtx) -> &vortex_compressor::stats::FloatStats +pub fn vortex_compressor::stats::ArrayAndStats::float_stats(&self, ctx: &mut vortex_array::executor::ExecutionCtx) -> alloc::sync::Arc -pub fn vortex_compressor::stats::ArrayAndStats::get_or_insert_with(&mut self, f: impl core::ops::function::FnOnce() -> T) -> &T +pub fn vortex_compressor::stats::ArrayAndStats::get_or_insert_with(&self, f: impl core::ops::function::FnOnce() -> T) -> alloc::sync::Arc -pub fn vortex_compressor::stats::ArrayAndStats::integer_stats(&mut self, ctx: &mut vortex_array::executor::ExecutionCtx) -> &vortex_compressor::stats::IntegerStats +pub fn vortex_compressor::stats::ArrayAndStats::integer_stats(&self, ctx: &mut vortex_array::executor::ExecutionCtx) -> alloc::sync::Arc pub fn vortex_compressor::stats::ArrayAndStats::into_array(self) -> vortex_array::array::erased::ArrayRef pub fn vortex_compressor::stats::ArrayAndStats::new(array: vortex_array::array::erased::ArrayRef, opts: vortex_compressor::stats::GenerateStatsOptions) -> Self -pub fn vortex_compressor::stats::ArrayAndStats::string_stats(&mut self, ctx: &mut vortex_array::executor::ExecutionCtx) -> &vortex_compressor::stats::StringStats +pub fn vortex_compressor::stats::ArrayAndStats::string_stats(&self, ctx: &mut vortex_array::executor::ExecutionCtx) -> alloc::sync::Arc pub struct vortex_compressor::stats::BoolStats diff --git a/vortex-compressor/src/builtins/constant/bool.rs b/vortex-compressor/src/builtins/constant/bool.rs index e99edfbf315..3716e85e9ea 100644 --- a/vortex-compressor/src/builtins/constant/bool.rs +++ b/vortex-compressor/src/builtins/constant/bool.rs @@ -28,7 +28,7 @@ impl Scheme for BoolConstantScheme { fn expected_compression_ratio( &self, - data: &mut ArrayAndStats, + data: &ArrayAndStats, compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> CompressionEstimate { @@ -57,7 +57,7 @@ impl Scheme for BoolConstantScheme { fn compress( &self, _compressor: &CascadingCompressor, - data: &mut ArrayAndStats, + data: &ArrayAndStats, _compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> VortexResult { diff --git a/vortex-compressor/src/builtins/constant/float.rs b/vortex-compressor/src/builtins/constant/float.rs index 70e8525855a..1445a6cca2d 100644 --- a/vortex-compressor/src/builtins/constant/float.rs +++ b/vortex-compressor/src/builtins/constant/float.rs @@ -31,7 +31,7 @@ impl Scheme for FloatConstantScheme { fn expected_compression_ratio( &self, - data: &mut ArrayAndStats, + data: &ArrayAndStats, compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> CompressionEstimate { @@ -79,7 +79,7 @@ impl Scheme for FloatConstantScheme { fn compress( &self, _compressor: &CascadingCompressor, - data: &mut ArrayAndStats, + data: &ArrayAndStats, _compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> VortexResult { diff --git a/vortex-compressor/src/builtins/constant/integer.rs b/vortex-compressor/src/builtins/constant/integer.rs index 298c9de7e84..a10481ad100 100644 --- a/vortex-compressor/src/builtins/constant/integer.rs +++ b/vortex-compressor/src/builtins/constant/integer.rs @@ -29,7 +29,7 @@ impl Scheme for IntConstantScheme { fn expected_compression_ratio( &self, - data: &mut ArrayAndStats, + data: &ArrayAndStats, compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> CompressionEstimate { @@ -69,7 +69,7 @@ impl Scheme for IntConstantScheme { fn compress( &self, _compressor: &CascadingCompressor, - data: &mut ArrayAndStats, + data: &ArrayAndStats, _compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> VortexResult { diff --git a/vortex-compressor/src/builtins/constant/string.rs b/vortex-compressor/src/builtins/constant/string.rs index e723336fc3c..68ccfe14e8a 100644 --- a/vortex-compressor/src/builtins/constant/string.rs +++ b/vortex-compressor/src/builtins/constant/string.rs @@ -31,7 +31,7 @@ impl Scheme for StringConstantScheme { fn expected_compression_ratio( &self, - data: &mut ArrayAndStats, + data: &ArrayAndStats, compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> CompressionEstimate { @@ -73,7 +73,7 @@ impl Scheme for StringConstantScheme { fn compress( &self, _compressor: &CascadingCompressor, - data: &mut ArrayAndStats, + data: &ArrayAndStats, _compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> VortexResult { diff --git a/vortex-compressor/src/builtins/dict/float.rs b/vortex-compressor/src/builtins/dict/float.rs index 45b3097a0b0..51d553b591f 100644 --- a/vortex-compressor/src/builtins/dict/float.rs +++ b/vortex-compressor/src/builtins/dict/float.rs @@ -83,7 +83,7 @@ impl Scheme for FloatDictScheme { fn expected_compression_ratio( &self, - data: &mut ArrayAndStats, + data: &ArrayAndStats, _compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> CompressionEstimate { @@ -109,12 +109,11 @@ impl Scheme for FloatDictScheme { fn compress( &self, compressor: &CascadingCompressor, - data: &mut ArrayAndStats, + data: &ArrayAndStats, compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> VortexResult { - // TODO(connor): Fight the borrow checker (needs interior mutability)! - let stats = data.float_stats(exec_ctx).clone(); + let stats = data.float_stats(exec_ctx); let dict = dictionary_encode(data.array_as_primitive(), &stats)?; let has_all_values_referenced = dict.has_all_values_referenced(); diff --git a/vortex-compressor/src/builtins/dict/integer.rs b/vortex-compressor/src/builtins/dict/integer.rs index 8f83d2840cb..140afdcebf1 100644 --- a/vortex-compressor/src/builtins/dict/integer.rs +++ b/vortex-compressor/src/builtins/dict/integer.rs @@ -57,7 +57,7 @@ impl Scheme for IntDictScheme { fn expected_compression_ratio( &self, - data: &mut ArrayAndStats, + data: &ArrayAndStats, _compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> CompressionEstimate { @@ -103,12 +103,11 @@ impl Scheme for IntDictScheme { fn compress( &self, compressor: &CascadingCompressor, - data: &mut ArrayAndStats, + data: &ArrayAndStats, compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> VortexResult { - // TODO(connor): Fight the borrow checker (needs interior mutability)! - let stats = data.integer_stats(exec_ctx).clone(); + let stats = data.integer_stats(exec_ctx); let dict = dictionary_encode(data.array_as_primitive(), &stats)?; // Values = child 0. diff --git a/vortex-compressor/src/builtins/dict/string.rs b/vortex-compressor/src/builtins/dict/string.rs index 935bf6c0312..ac6affdf854 100644 --- a/vortex-compressor/src/builtins/dict/string.rs +++ b/vortex-compressor/src/builtins/dict/string.rs @@ -68,7 +68,7 @@ impl Scheme for StringDictScheme { fn expected_compression_ratio( &self, - data: &mut ArrayAndStats, + data: &ArrayAndStats, _compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> CompressionEstimate { @@ -94,7 +94,7 @@ impl Scheme for StringDictScheme { fn compress( &self, compressor: &CascadingCompressor, - data: &mut ArrayAndStats, + data: &ArrayAndStats, compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> VortexResult { diff --git a/vortex-compressor/src/compressor.rs b/vortex-compressor/src/compressor.rs index da8d5ad56fa..0f67619e3cb 100644 --- a/vortex-compressor/src/compressor.rs +++ b/vortex-compressor/src/compressor.rs @@ -303,10 +303,10 @@ impl CascadingCompressor { }); let compress_ctx = compress_ctx.with_merged_stats_options(merged_opts); - let mut data = ArrayAndStats::new(array, merged_opts); + let data = ArrayAndStats::new(array, merged_opts); let Some((winner, winner_estimate)) = - self.choose_best_scheme(&eligible_schemes, &mut data, compress_ctx.clone(), exec_ctx)? + self.choose_best_scheme(&eligible_schemes, &data, compress_ctx.clone(), exec_ctx)? else { return Ok(data.into_array()); }; @@ -314,7 +314,7 @@ impl CascadingCompressor { // Run the winning scheme's `compress`. On failure, emit an ERROR event carrying the // scheme name and cascade history before propagating. let error_ctx = trace::enabled_error_context(&compress_ctx); - let compressed = match winner.compress(self, &mut data, compress_ctx, exec_ctx) { + let compressed = match winner.compress(self, &data, compress_ctx, exec_ctx) { Ok(compressed) => compressed, Err(err) => { // NB: this is the only way we can tell which scheme panicked / bailed on their @@ -355,7 +355,7 @@ impl CascadingCompressor { fn choose_best_scheme( &self, schemes: &[&'static dyn Scheme], - data: &mut ArrayAndStats, + data: &ArrayAndStats, compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> VortexResult> { @@ -688,7 +688,7 @@ mod tests { fn expected_compression_ratio( &self, - _data: &mut ArrayAndStats, + _data: &ArrayAndStats, _compress_ctx: CompressorContext, _exec_ctx: &mut ExecutionCtx, ) -> CompressionEstimate { @@ -698,7 +698,7 @@ mod tests { fn compress( &self, _compressor: &CascadingCompressor, - _data: &mut ArrayAndStats, + _data: &ArrayAndStats, _compress_ctx: CompressorContext, _exec_ctx: &mut ExecutionCtx, ) -> VortexResult { @@ -720,7 +720,7 @@ mod tests { fn expected_compression_ratio( &self, - _data: &mut ArrayAndStats, + _data: &ArrayAndStats, _compress_ctx: CompressorContext, _exec_ctx: &mut ExecutionCtx, ) -> CompressionEstimate { @@ -730,7 +730,7 @@ mod tests { fn compress( &self, _compressor: &CascadingCompressor, - _data: &mut ArrayAndStats, + _data: &ArrayAndStats, _compress_ctx: CompressorContext, _exec_ctx: &mut ExecutionCtx, ) -> VortexResult { @@ -752,7 +752,7 @@ mod tests { fn expected_compression_ratio( &self, - _data: &mut ArrayAndStats, + _data: &ArrayAndStats, _compress_ctx: CompressorContext, _exec_ctx: &mut ExecutionCtx, ) -> CompressionEstimate { @@ -764,7 +764,7 @@ mod tests { fn compress( &self, _compressor: &CascadingCompressor, - _data: &mut ArrayAndStats, + _data: &ArrayAndStats, _compress_ctx: CompressorContext, _exec_ctx: &mut ExecutionCtx, ) -> VortexResult { @@ -786,7 +786,7 @@ mod tests { fn expected_compression_ratio( &self, - _data: &mut ArrayAndStats, + _data: &ArrayAndStats, _compress_ctx: CompressorContext, _exec_ctx: &mut ExecutionCtx, ) -> CompressionEstimate { @@ -798,7 +798,7 @@ mod tests { fn compress( &self, _compressor: &CascadingCompressor, - _data: &mut ArrayAndStats, + _data: &ArrayAndStats, _compress_ctx: CompressorContext, _exec_ctx: &mut ExecutionCtx, ) -> VortexResult { @@ -820,7 +820,7 @@ mod tests { fn expected_compression_ratio( &self, - _data: &mut ArrayAndStats, + _data: &ArrayAndStats, _compress_ctx: CompressorContext, _exec_ctx: &mut ExecutionCtx, ) -> CompressionEstimate { @@ -832,7 +832,7 @@ mod tests { fn compress( &self, _compressor: &CascadingCompressor, - _data: &mut ArrayAndStats, + _data: &ArrayAndStats, _compress_ctx: CompressorContext, _exec_ctx: &mut ExecutionCtx, ) -> VortexResult { @@ -854,7 +854,7 @@ mod tests { fn expected_compression_ratio( &self, - _data: &mut ArrayAndStats, + _data: &ArrayAndStats, _compress_ctx: CompressorContext, _exec_ctx: &mut ExecutionCtx, ) -> CompressionEstimate { @@ -864,7 +864,7 @@ mod tests { fn compress( &self, _compressor: &CascadingCompressor, - _data: &mut ArrayAndStats, + _data: &ArrayAndStats, _compress_ctx: CompressorContext, _exec_ctx: &mut ExecutionCtx, ) -> VortexResult { @@ -886,7 +886,7 @@ mod tests { fn expected_compression_ratio( &self, - _data: &mut ArrayAndStats, + _data: &ArrayAndStats, _compress_ctx: CompressorContext, _exec_ctx: &mut ExecutionCtx, ) -> CompressionEstimate { @@ -896,7 +896,7 @@ mod tests { fn compress( &self, _compressor: &CascadingCompressor, - data: &mut ArrayAndStats, + data: &ArrayAndStats, _compress_ctx: CompressorContext, _exec_ctx: &mut ExecutionCtx, ) -> VortexResult { @@ -918,7 +918,7 @@ mod tests { fn expected_compression_ratio( &self, - _data: &mut ArrayAndStats, + _data: &ArrayAndStats, _compress_ctx: CompressorContext, _exec_ctx: &mut ExecutionCtx, ) -> CompressionEstimate { @@ -928,7 +928,7 @@ mod tests { fn compress( &self, compressor: &CascadingCompressor, - data: &mut ArrayAndStats, + data: &ArrayAndStats, compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> VortexResult { @@ -950,7 +950,7 @@ mod tests { fn expected_compression_ratio( &self, - _data: &mut ArrayAndStats, + _data: &ArrayAndStats, _compress_ctx: CompressorContext, _exec_ctx: &mut ExecutionCtx, ) -> CompressionEstimate { @@ -960,7 +960,7 @@ mod tests { fn compress( &self, _compressor: &CascadingCompressor, - _data: &mut ArrayAndStats, + _data: &ArrayAndStats, _compress_ctx: CompressorContext, _exec_ctx: &mut ExecutionCtx, ) -> VortexResult { @@ -982,7 +982,7 @@ mod tests { fn expected_compression_ratio( &self, - _data: &mut ArrayAndStats, + _data: &ArrayAndStats, _compress_ctx: CompressorContext, _exec_ctx: &mut ExecutionCtx, ) -> CompressionEstimate { @@ -992,7 +992,7 @@ mod tests { fn compress( &self, _compressor: &CascadingCompressor, - _data: &mut ArrayAndStats, + _data: &ArrayAndStats, _compress_ctx: CompressorContext, _exec_ctx: &mut ExecutionCtx, ) -> VortexResult { @@ -1054,12 +1054,12 @@ mod tests { let compressor = CascadingCompressor::new(vec![&DirectRatioScheme, &ImmediateAlwaysUseScheme]); let schemes: [&'static dyn Scheme; 2] = [&DirectRatioScheme, &ImmediateAlwaysUseScheme]; - let mut data = estimate_test_data(); + let data = estimate_test_data(); let mut exec_ctx = SESSION.create_execution_ctx(); let winner = compressor.choose_best_scheme( &schemes, - &mut data, + &data, CompressorContext::new(), &mut exec_ctx, )?; @@ -1077,12 +1077,12 @@ mod tests { let compressor = CascadingCompressor::new(vec![&DirectRatioScheme, &CallbackAlwaysUseScheme]); let schemes: [&'static dyn Scheme; 2] = [&DirectRatioScheme, &CallbackAlwaysUseScheme]; - let mut data = estimate_test_data(); + let data = estimate_test_data(); let mut exec_ctx = SESSION.create_execution_ctx(); let winner = compressor.choose_best_scheme( &schemes, - &mut data, + &data, CompressorContext::new(), &mut exec_ctx, )?; @@ -1099,12 +1099,12 @@ mod tests { fn callback_skip_is_ignored() -> VortexResult<()> { let compressor = CascadingCompressor::new(vec![&CallbackSkipScheme, &DirectRatioScheme]); let schemes: [&'static dyn Scheme; 2] = [&CallbackSkipScheme, &DirectRatioScheme]; - let mut data = estimate_test_data(); + let data = estimate_test_data(); let mut exec_ctx = SESSION.create_execution_ctx(); let winner = compressor.choose_best_scheme( &schemes, - &mut data, + &data, CompressorContext::new(), &mut exec_ctx, )?; @@ -1121,12 +1121,12 @@ mod tests { fn callback_ratio_competes_numerically() -> VortexResult<()> { let compressor = CascadingCompressor::new(vec![&DirectRatioScheme, &CallbackRatioScheme]); let schemes: [&'static dyn Scheme; 2] = [&DirectRatioScheme, &CallbackRatioScheme]; - let mut data = estimate_test_data(); + let data = estimate_test_data(); let mut exec_ctx = SESSION.create_execution_ctx(); let winner = compressor.choose_best_scheme( &schemes, - &mut data, + &data, CompressorContext::new(), &mut exec_ctx, )?; @@ -1143,12 +1143,12 @@ mod tests { fn zero_byte_sample_loses_to_finite_ratio() -> VortexResult<()> { let compressor = CascadingCompressor::new(vec![&HugeRatioScheme, &ZeroBytesSamplingScheme]); let schemes: [&'static dyn Scheme; 2] = [&HugeRatioScheme, &ZeroBytesSamplingScheme]; - let mut data = estimate_test_data(); + let data = estimate_test_data(); let mut exec_ctx = SESSION.create_execution_ctx(); let winner = compressor.choose_best_scheme( &schemes, - &mut data, + &data, CompressorContext::new(), &mut exec_ctx, )?; @@ -1165,12 +1165,12 @@ mod tests { fn finite_ratio_displaces_zero_byte_sample() -> VortexResult<()> { let compressor = CascadingCompressor::new(vec![&ZeroBytesSamplingScheme, &HugeRatioScheme]); let schemes: [&'static dyn Scheme; 2] = [&ZeroBytesSamplingScheme, &HugeRatioScheme]; - let mut data = estimate_test_data(); + let data = estimate_test_data(); let mut exec_ctx = SESSION.create_execution_ctx(); let winner = compressor.choose_best_scheme( &schemes, - &mut data, + &data, CompressorContext::new(), &mut exec_ctx, )?; @@ -1187,12 +1187,12 @@ mod tests { fn zero_byte_sample_alone_selects_no_scheme() -> VortexResult<()> { let compressor = CascadingCompressor::new(vec![&ZeroBytesSamplingScheme]); let schemes: [&'static dyn Scheme; 1] = [&ZeroBytesSamplingScheme]; - let mut data = estimate_test_data(); + let data = estimate_test_data(); let mut exec_ctx = SESSION.create_execution_ctx(); let winner = compressor.choose_best_scheme( &schemes, - &mut data, + &data, CompressorContext::new(), &mut exec_ctx, )?; diff --git a/vortex-compressor/src/estimate.rs b/vortex-compressor/src/estimate.rs index 4fed4cae323..22a99fbccdc 100644 --- a/vortex-compressor/src/estimate.rs +++ b/vortex-compressor/src/estimate.rs @@ -28,7 +28,7 @@ use crate::trace; #[rustfmt::skip] pub type EstimateFn = dyn FnOnce( &CascadingCompressor, - &mut ArrayAndStats, + &ArrayAndStats, CompressorContext, &mut ExecutionCtx, ) -> VortexResult @@ -193,11 +193,11 @@ pub(super) fn estimate_compression_ratio_with_sampling( canonical.into_array() }; - let mut sample_data = ArrayAndStats::new(sample_array, scheme.stats_options()); + let sample_data = ArrayAndStats::new(sample_array, scheme.stats_options()); let error_ctx = trace::enabled_error_context(&compress_ctx); let sample_ctx = compress_ctx.with_sampling(); - let compressed = match scheme.compress(compressor, &mut sample_data, sample_ctx, exec_ctx) { + let compressed = match scheme.compress(compressor, &sample_data, sample_ctx, exec_ctx) { Ok(compressed) => compressed, Err(err) => { trace::sample_compress_failed(scheme.id(), error_ctx.as_ref(), &err); diff --git a/vortex-compressor/src/scheme.rs b/vortex-compressor/src/scheme.rs index 24582b1bc2e..4c5e7f0e940 100644 --- a/vortex-compressor/src/scheme.rs +++ b/vortex-compressor/src/scheme.rs @@ -211,7 +211,7 @@ pub trait Scheme: Debug + Send + Sync { /// that are not all-null. fn expected_compression_ratio( &self, - _data: &mut ArrayAndStats, + _data: &ArrayAndStats, _compress_ctx: CompressorContext, _exec_ctx: &mut ExecutionCtx, ) -> CompressionEstimate; @@ -224,7 +224,7 @@ pub trait Scheme: Debug + Send + Sync { fn compress( &self, compressor: &CascadingCompressor, - data: &mut ArrayAndStats, + data: &ArrayAndStats, compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> VortexResult; diff --git a/vortex-compressor/src/stats/cache.rs b/vortex-compressor/src/stats/cache.rs index 5f53cb83d41..91f0bf711fb 100644 --- a/vortex-compressor/src/stats/cache.rs +++ b/vortex-compressor/src/stats/cache.rs @@ -5,7 +5,9 @@ use std::any::Any; use std::any::TypeId; +use std::sync::Arc; +use parking_lot::Mutex; use vortex_array::ArrayRef; use vortex_array::ArrayView; use vortex_array::ExecutionCtx; @@ -20,42 +22,45 @@ use super::GenerateStatsOptions; use super::IntegerStats; use super::StringStats; +/// A single cache entry: a concrete [`TypeId`] paired with a type-erased value. +type StatsEntry = (TypeId, Arc); + /// Cache for compression statistics, keyed by concrete type. +/// +/// The cache is interior-mutable: entries can be inserted through a shared [`&StatsCache`] +/// borrow. Values are stored as [`Arc`] so that cached entries can be +/// cloned out of the lock cheaply and handed back to callers as [`Arc`]. struct StatsCache { // TODO(connor): We could further optimize this with a `SmallVec` here. /// The cache entries, keyed by [`TypeId`]. /// /// The total number of statistics types in this stats should be relatively small, so we use a /// vector instead of a hash map. - entries: Vec<(TypeId, Box)>, + entries: Arc>>, } impl StatsCache { /// Creates a new empty cache. fn new() -> Self { Self { - entries: Vec::new(), + entries: Arc::new(Mutex::new(Vec::new())), } } /// Returns a cached value, computing it on first access. - fn get_or_insert_with(&mut self, f: impl FnOnce() -> T) -> &T { + fn get_or_insert_with(&self, f: impl FnOnce() -> T) -> Arc { let type_id = TypeId::of::(); - let pos = self.entries.iter().position(|(id, _)| *id == type_id); + let mut guard = self.entries.lock(); - if let Some(pos) = pos { - self.entries[pos] - .1 - .downcast_ref::() + if let Some(pos) = guard.iter().position(|(id, _)| *id == type_id) { + Arc::clone(&guard[pos].1) + .downcast::() + .ok() .vortex_expect("we just checked the TypeID") } else { - self.entries.push((type_id, Box::new(f()))); - self.entries - .last() - .vortex_expect("just pushed") - .1 - .downcast_ref::() - .vortex_expect("we just checked the TypeID") + let new_arc: Arc = Arc::new(f()); + guard.push((type_id, Arc::clone(&new_arc) as Arc)); + new_arc } } } @@ -66,10 +71,16 @@ impl StatsCache { /// FoR bias subtraction), it must create a new [`ArrayAndStats`] so that stale stats from the /// original array are not reused. /// -/// Built-in stats are accessed via typed methods (`integer_stats`, `float_stats`, `string_stats`) -/// which generate stats lazily on first access using the stored [`GenerateStatsOptions`]. +/// Built-in stats are accessed via typed methods ([`integer_stats`], [`float_stats`], +/// [`string_stats`]) which generate stats lazily on first access using the stored +/// [`GenerateStatsOptions`]. /// -/// Extension schemes can use `get_or_insert_with` for custom stats types. +/// Extension schemes can use [`get_or_insert_with`] for custom stats types. +/// +/// [`integer_stats`]: ArrayAndStats::integer_stats +/// [`float_stats`]: ArrayAndStats::float_stats +/// [`string_stats`]: ArrayAndStats::string_stats +/// [`get_or_insert_with`]: ArrayAndStats::get_or_insert_with pub struct ArrayAndStats { /// The array. This is always in canonical form. array: ArrayRef, @@ -138,9 +149,8 @@ impl ArrayAndStats { } /// Returns bool stats, generating them lazily on first access. - pub fn bool_stats(&mut self, ctx: &mut ExecutionCtx) -> &BoolStats { + pub fn bool_stats(&self, ctx: &mut ExecutionCtx) -> Arc { let array = self.array.clone(); - self.cache.get_or_insert_with::(|| { let bool_array = array .as_opt::() @@ -150,13 +160,10 @@ impl ArrayAndStats { }) } - // TODO(connor): These should all have interior mutability instead!!! - /// Returns integer stats, generating them lazily on first access. - pub fn integer_stats(&mut self, ctx: &mut ExecutionCtx) -> &IntegerStats { + pub fn integer_stats(&self, ctx: &mut ExecutionCtx) -> Arc { let array = self.array.clone(); let opts = self.opts; - self.cache.get_or_insert_with::(|| { let primitive = array .as_opt::() @@ -167,10 +174,9 @@ impl ArrayAndStats { } /// Returns float stats, generating them lazily on first access. - pub fn float_stats(&mut self, ctx: &mut ExecutionCtx) -> &FloatStats { + pub fn float_stats(&self, ctx: &mut ExecutionCtx) -> Arc { let array = self.array.clone(); let opts = self.opts; - self.cache.get_or_insert_with::(|| { let primitive = array .as_opt::() @@ -181,10 +187,9 @@ impl ArrayAndStats { } /// Returns string stats, generating them lazily on first access. - pub fn string_stats(&mut self, ctx: &mut ExecutionCtx) -> &StringStats { + pub fn string_stats(&self, ctx: &mut ExecutionCtx) -> Arc { let array = self.array.clone(); let opts = self.opts; - self.cache.get_or_insert_with::(|| { let varbinview = array .as_opt::() @@ -195,7 +200,7 @@ impl ArrayAndStats { } /// For extension schemes with custom stats types. - pub fn get_or_insert_with(&mut self, f: impl FnOnce() -> T) -> &T { + pub fn get_or_insert_with(&self, f: impl FnOnce() -> T) -> Arc { self.cache.get_or_insert_with::(f) } } diff --git a/vortex-tensor/public-api.lock b/vortex-tensor/public-api.lock index 49c21c193e9..153fab43aa9 100644 --- a/vortex-tensor/public-api.lock +++ b/vortex-tensor/public-api.lock @@ -12,9 +12,9 @@ pub fn vortex_tensor::encodings::l2_denorm::L2DenormScheme::fmt(&self, f: &mut c impl vortex_compressor::scheme::Scheme for vortex_tensor::encodings::l2_denorm::L2DenormScheme -pub fn vortex_tensor::encodings::l2_denorm::L2DenormScheme::compress(&self, _compressor: &vortex_compressor::compressor::CascadingCompressor, data: &mut vortex_compressor::stats::cache::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_tensor::encodings::l2_denorm::L2DenormScheme::compress(&self, _compressor: &vortex_compressor::compressor::CascadingCompressor, data: &vortex_compressor::stats::cache::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult -pub fn vortex_tensor::encodings::l2_denorm::L2DenormScheme::expected_compression_ratio(&self, _data: &mut vortex_compressor::stats::cache::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, _exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate +pub fn vortex_tensor::encodings::l2_denorm::L2DenormScheme::expected_compression_ratio(&self, _data: &vortex_compressor::stats::cache::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, _exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate pub fn vortex_tensor::encodings::l2_denorm::L2DenormScheme::matches(&self, canonical: &vortex_array::canonical::Canonical) -> bool @@ -64,9 +64,9 @@ impl core::marker::StructuralPartialEq for vortex_tensor::encodings::turboquant: impl vortex_compressor::scheme::Scheme for vortex_tensor::encodings::turboquant::TurboQuantScheme -pub fn vortex_tensor::encodings::turboquant::TurboQuantScheme::compress(&self, _compressor: &vortex_compressor::compressor::CascadingCompressor, data: &mut vortex_compressor::stats::cache::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult +pub fn vortex_tensor::encodings::turboquant::TurboQuantScheme::compress(&self, _compressor: &vortex_compressor::compressor::CascadingCompressor, data: &vortex_compressor::stats::cache::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_error::VortexResult -pub fn vortex_tensor::encodings::turboquant::TurboQuantScheme::expected_compression_ratio(&self, data: &mut vortex_compressor::stats::cache::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, _exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate +pub fn vortex_tensor::encodings::turboquant::TurboQuantScheme::expected_compression_ratio(&self, data: &vortex_compressor::stats::cache::ArrayAndStats, _compress_ctx: vortex_compressor::ctx::CompressorContext, _exec_ctx: &mut vortex_array::executor::ExecutionCtx) -> vortex_compressor::estimate::CompressionEstimate pub fn vortex_tensor::encodings::turboquant::TurboQuantScheme::matches(&self, canonical: &vortex_array::canonical::Canonical) -> bool diff --git a/vortex-tensor/src/encodings/l2_denorm.rs b/vortex-tensor/src/encodings/l2_denorm.rs index b21595db003..61a72d6a4d2 100644 --- a/vortex-tensor/src/encodings/l2_denorm.rs +++ b/vortex-tensor/src/encodings/l2_denorm.rs @@ -33,7 +33,7 @@ impl Scheme for L2DenormScheme { fn expected_compression_ratio( &self, - _data: &mut ArrayAndStats, + _data: &ArrayAndStats, _compress_ctx: CompressorContext, _exec_ctx: &mut ExecutionCtx, ) -> CompressionEstimate { @@ -43,7 +43,7 @@ impl Scheme for L2DenormScheme { fn compress( &self, _compressor: &CascadingCompressor, - data: &mut ArrayAndStats, + data: &ArrayAndStats, _compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> VortexResult { diff --git a/vortex-tensor/src/encodings/turboquant/scheme.rs b/vortex-tensor/src/encodings/turboquant/scheme.rs index c2ea8f91e1f..19007664abe 100644 --- a/vortex-tensor/src/encodings/turboquant/scheme.rs +++ b/vortex-tensor/src/encodings/turboquant/scheme.rs @@ -71,7 +71,7 @@ impl Scheme for TurboQuantScheme { fn expected_compression_ratio( &self, - data: &mut ArrayAndStats, + data: &ArrayAndStats, _compress_ctx: CompressorContext, _exec_ctx: &mut ExecutionCtx, ) -> CompressionEstimate { @@ -97,7 +97,7 @@ impl Scheme for TurboQuantScheme { fn compress( &self, _compressor: &CascadingCompressor, - data: &mut ArrayAndStats, + data: &ArrayAndStats, _compress_ctx: CompressorContext, exec_ctx: &mut ExecutionCtx, ) -> VortexResult {