@@ -10,6 +10,8 @@ use vortex_alp::ALP;
1010// Compressed encodings from encoding crates
1111// Canonical array encodings from vortex-array
1212use vortex_alp:: ALPRD ;
13+ use vortex_array:: ArrayId ;
14+ use vortex_array:: VTable ;
1315use vortex_array:: arrays:: Bool ;
1416use vortex_array:: arrays:: Chunked ;
1517use vortex_array:: arrays:: Constant ;
@@ -26,8 +28,6 @@ use vortex_array::arrays::Struct;
2628use vortex_array:: arrays:: VarBin ;
2729use vortex_array:: arrays:: VarBinView ;
2830use vortex_array:: dtype:: FieldPath ;
29- use vortex_array:: session:: ArrayRegistry ;
30- use vortex_array:: session:: ArraySession ;
3131use vortex_btrblocks:: BtrBlocksCompressor ;
3232use vortex_btrblocks:: BtrBlocksCompressorBuilder ;
3333use vortex_btrblocks:: SchemeExt ;
@@ -67,6 +67,7 @@ use vortex_btrblocks::{
6767 schemes:: integer,
6868 schemes:: string,
6969} ;
70+ use vortex_utils:: aliases:: hash_set:: HashSet ;
7071#[ cfg( feature = "zstd" ) ]
7172use vortex_zstd:: Zstd ;
7273#[ cfg( all( feature = "zstd" , feature = "unstable_encodings" ) ) ]
@@ -78,49 +79,49 @@ const ONE_MEG: u64 = 1 << 20;
7879///
7980/// This includes all canonical encodings from vortex-array plus all compressed
8081/// encodings from the various encoding crates.
81- pub static ALLOWED_ENCODINGS : LazyLock < ArrayRegistry > = LazyLock :: new ( || {
82- let session = ArraySession :: empty ( ) ;
82+ pub static ALLOWED_ENCODINGS : LazyLock < HashSet < ArrayId > > = LazyLock :: new ( || {
83+ let mut allowed = HashSet :: new ( ) ;
8384
8485 // Canonical encodings from vortex-array
85- session . register ( Null ) ;
86- session . register ( Bool ) ;
87- session . register ( Primitive ) ;
88- session . register ( Decimal ) ;
89- session . register ( VarBin ) ;
90- session . register ( VarBinView ) ;
91- session . register ( List ) ;
92- session . register ( ListView ) ;
93- session . register ( FixedSizeList ) ;
94- session . register ( Struct ) ;
95- session . register ( Extension ) ;
96- session . register ( Chunked ) ;
97- session . register ( Constant ) ;
98- session . register ( Masked ) ;
99- session . register ( Dict ) ;
86+ allowed . insert ( Null . id ( ) ) ;
87+ allowed . insert ( Bool . id ( ) ) ;
88+ allowed . insert ( Primitive . id ( ) ) ;
89+ allowed . insert ( Decimal . id ( ) ) ;
90+ allowed . insert ( VarBin . id ( ) ) ;
91+ allowed . insert ( VarBinView . id ( ) ) ;
92+ allowed . insert ( List . id ( ) ) ;
93+ allowed . insert ( ListView . id ( ) ) ;
94+ allowed . insert ( FixedSizeList . id ( ) ) ;
95+ allowed . insert ( Struct . id ( ) ) ;
96+ allowed . insert ( Extension . id ( ) ) ;
97+ allowed . insert ( Chunked . id ( ) ) ;
98+ allowed . insert ( Constant . id ( ) ) ;
99+ allowed . insert ( Masked . id ( ) ) ;
100+ allowed . insert ( Dict . id ( ) ) ;
100101
101102 // Compressed encodings from encoding crates
102- session . register ( ALP ) ;
103- session . register ( ALPRD ) ;
104- session . register ( BitPacked ) ;
105- session . register ( ByteBool ) ;
106- session . register ( DateTimeParts ) ;
107- session . register ( DecimalByteParts ) ;
108- session . register ( Delta ) ;
109- session . register ( FoR ) ;
110- session . register ( FSST ) ;
111- session . register ( Pco ) ;
112- session . register ( RLE ) ;
113- session . register ( RunEnd ) ;
114- session . register ( Sequence ) ;
115- session . register ( Sparse ) ;
116- session . register ( ZigZag ) ;
103+ allowed . insert ( ALP . id ( ) ) ;
104+ allowed . insert ( ALPRD . id ( ) ) ;
105+ allowed . insert ( BitPacked . id ( ) ) ;
106+ allowed . insert ( ByteBool . id ( ) ) ;
107+ allowed . insert ( DateTimeParts . id ( ) ) ;
108+ allowed . insert ( DecimalByteParts . id ( ) ) ;
109+ allowed . insert ( Delta . id ( ) ) ;
110+ allowed . insert ( FoR . id ( ) ) ;
111+ allowed . insert ( FSST . id ( ) ) ;
112+ allowed . insert ( Pco . id ( ) ) ;
113+ allowed . insert ( RLE . id ( ) ) ;
114+ allowed . insert ( RunEnd . id ( ) ) ;
115+ allowed . insert ( Sequence . id ( ) ) ;
116+ allowed . insert ( Sparse . id ( ) ) ;
117+ allowed . insert ( ZigZag . id ( ) ) ;
117118
118119 #[ cfg( feature = "zstd" ) ]
119- session . register ( Zstd ) ;
120+ allowed . insert ( Zstd . id ( ) ) ;
120121 #[ cfg( all( feature = "zstd" , feature = "unstable_encodings" ) ) ]
121- session . register ( ZstdBuffers ) ;
122+ allowed . insert ( ZstdBuffers . id ( ) ) ;
122123
123- session . registry ( ) . clone ( )
124+ allowed
124125} ) ;
125126
126127/// Build a new [writer strategy][LayoutStrategy] to compress and reorganize chunks of a Vortex file.
@@ -132,7 +133,7 @@ pub struct WriteStrategyBuilder {
132133 compressor_override : Option < Arc < dyn CompressorPlugin > > ,
133134 row_block_size : usize ,
134135 field_writers : HashMap < FieldPath , Arc < dyn LayoutStrategy > > ,
135- allow_encodings : Option < ArrayRegistry > ,
136+ allow_encodings : Option < HashSet < ArrayId > > ,
136137 flat_strategy : Option < Arc < dyn LayoutStrategy > > ,
137138}
138139
@@ -169,7 +170,7 @@ impl WriteStrategyBuilder {
169170 }
170171
171172 /// Override the allowed array encodings for normalization.
172- pub fn with_allow_encodings ( mut self , allow_encodings : ArrayRegistry ) -> Self {
173+ pub fn with_allow_encodings ( mut self , allow_encodings : HashSet < ArrayId > ) -> Self {
173174 self . allow_encodings = Some ( allow_encodings) ;
174175 self
175176 }
0 commit comments