Skip to content

Commit 51284cd

Browse files
committed
avoid including experimental encoding in footer
Signed-off-by: Andrew Duffy <andrew@a10y.dev>
1 parent d0a6dba commit 51284cd

4 files changed

Lines changed: 13 additions & 7 deletions

File tree

vortex-array/src/session/mod.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ use crate::arrays::List;
2323
use crate::arrays::ListView;
2424
use crate::arrays::Masked;
2525
use crate::arrays::Null;
26-
use crate::arrays::Patched;
2726
use crate::arrays::Primitive;
2827
use crate::arrays::Struct;
2928
use crate::arrays::VarBin;
@@ -80,7 +79,6 @@ impl Default for ArraySession {
8079
this.register(Dict);
8180
this.register(List);
8281
this.register(Masked);
83-
this.register(Patched);
8482
this.register(VarBin);
8583

8684
this

vortex-file/src/lib.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,8 @@ pub use forever_constant::*;
110110
pub use open::*;
111111
pub use strategy::*;
112112
use vortex_array::arrays::Dict;
113+
use vortex_array::arrays::Patched;
114+
use vortex_array::arrays::patched::use_experimental_patches;
113115
use vortex_array::session::ArraySessionExt;
114116
use vortex_bytebool::ByteBool;
115117
use vortex_fsst::FSST;
@@ -168,6 +170,9 @@ pub fn register_default_encodings(session: &VortexSession) {
168170
arrays.register(vortex_zstd::Zstd);
169171
#[cfg(all(feature = "zstd", feature = "unstable_encodings"))]
170172
arrays.register(vortex_zstd::ZstdBuffers);
173+
if use_experimental_patches() {
174+
arrays.register(Patched);
175+
}
171176
}
172177

173178
// Eventually all encodings crates should expose an initialize function. For now it's only

vortex-file/src/strategy.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -90,10 +90,6 @@ pub static ALLOWED_ENCODINGS: LazyLock<HashSet<ArrayId>> = LazyLock::new(|| {
9090
allowed.insert(Masked.id());
9191
allowed.insert(Dict.id());
9292

93-
if use_experimental_patches() {
94-
allowed.insert(Patched.id());
95-
}
96-
9793
// Compressed encodings from encoding crates
9894
allowed.insert(ALP.id());
9995
allowed.insert(ALPRD.id());
@@ -111,6 +107,12 @@ pub static ALLOWED_ENCODINGS: LazyLock<HashSet<ArrayId>> = LazyLock::new(|| {
111107
allowed.insert(Sparse.id());
112108
allowed.insert(ZigZag.id());
113109

110+
// Experimental encodings
111+
112+
if use_experimental_patches() {
113+
allowed.insert(Patched.id());
114+
}
115+
114116
#[cfg(feature = "zstd")]
115117
allowed.insert(Zstd.id());
116118
#[cfg(all(feature = "zstd", feature = "unstable_encodings"))]

vortex-file/src/writer.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ use vortex_session::SessionExt;
4747
use vortex_session::VortexSession;
4848
use vortex_session::registry::ReadContext;
4949

50+
use crate::ALLOWED_ENCODINGS;
5051
use crate::Footer;
5152
use crate::MAGIC_BYTES;
5253
use crate::WriteStrategyBuilder;
@@ -147,7 +148,7 @@ impl VortexWriteOptions {
147148
// serialised array order is deterministic. The serialisation of arrays are done
148149
// parallel and with an empty context they can register their encodings to the context
149150
// in different order, changing the written bytes from run to run.
150-
let ctx = ArrayContext::new(self.session.arrays().registry().ids().sorted().collect())
151+
let ctx = ArrayContext::new(ALLOWED_ENCODINGS.iter().cloned().sorted().collect())
151152
// Configure a registry just to ensure only known encodings are interned.
152153
.with_registry(self.session.arrays().registry().clone());
153154
let dtype = stream.dtype().clone();

0 commit comments

Comments
 (0)