|
95 | 95 |
|
96 | 96 | ## Encodings |
97 | 97 |
|
98 | | -### All Encodings |
99 | | - |
100 | | -| Encoding ID | Class | Decode | Encode | Effort | Dtypes / Notes | |
101 | | -|------------------------------|----------------------------|----------|----------|-----------|----------------| |
102 | | -| `vortex.primitive` | `PrimitiveEncoding` | ✅ | ✅ | — | all `PType` (I8–I64, U8–U64, F32, F64) | |
103 | | -| `vortex.bool` | `BoolEncoding` | ✅ | ✅ | — | Bool (bit-packed) | |
104 | | -| `vortex.null` | `NullEncoding` | ✅ | ✅ | — | Null | |
105 | | -| `vortex.bytebool` | `ByteBoolEncoding` | ✅ | ✅ | — | Bool | |
106 | | -| `vortex.zigzag` | `ZigZagEncoding` | ✅ | ✅ | — | signed integer PTypes | |
107 | | -| `vortex.constant` | `ConstantEncoding` | ✅ | ✅ | — | Primitive, Utf8, Binary, Bool, Null, Decimal, Extension | |
108 | | -| `vortex.ext` | `ExtEncoding` | ✅ | ✅ | — | Extension | |
109 | | -| `vortex.runend` | `RunEndEncoding` | ✅ | ✅ | — | Primitive, Utf8/Binary, Bool | |
110 | | -| `vortex.varbin` | `VarBinEncoding` | ✅ | ✅ | — | Utf8, Binary | |
111 | | -| `vortex.alp` | `AlpEncoding` | ✅ | ✅ | — | F64, F32 | |
112 | | -| `vortex.dict` | `DictEncoding` | ✅ | ✅ | — | Primitive (VarBin via dict.vortex blocked by VarBinView) | |
113 | | -| `fastlanes.delta` | `DeltaEncoding` | ✅ | ✅ | — | integer PTypes | |
114 | | -| `fastlanes.bitpacked` | `BitpackedEncoding` | ✅ | ✅ | — | unsigned integer PTypes | |
115 | | -| `fastlanes.for` | `FrameOfReferenceEncoding` | ✅ | ✅ | — | integer PTypes | |
116 | | -| `vortex.sparse` | `SparseEncoding` | ✅ | ✅ | — | Primitive | |
117 | | -| `vortex.sequence` | `SequenceEncoding` | ✅ | ✅ | — | Primitive | |
118 | | -| `vortex.struct` | `StructEncoding` | ✅ | ✅ | — | Struct | |
119 | | -| `vortex.fsst` | `FsstEncoding` | ✅ | ✅ | — | Utf8, Binary (bigram symbol table) | |
120 | | -| `vortex.varbinview` | `VarBinViewEncoding` | ✅ | ✅ | — | Utf8, Binary | |
121 | | -| `vortex.pco` | `PcoEncoding` | ✅ | ❌ | very hard | Classic, IntMult, FloatMult, FloatQuant, Dict; None+Consecutive+Lookback+Conv1 delta; nullable | |
122 | | -| `vortex.chunked` | `ChunkedEncoding` | ✅ | ✅ | medium | decode: primitive + struct concat; encode via ChunkedData | |
123 | | -| `fastlanes.rle` | `RleEncoding` | ✅ | ✅ | — | chunk-based RLE; offset always < 1024 | |
124 | | -| `vortex.alprd` | `AlpRdEncoding` | ✅ | ✅ | — | F64, F32; left ≤16 bits dict-coded (≤8 entries), right bitpacked; exceptions as patches | |
125 | | -| `vortex.decimal` | `DecimalEncoding` | ✅ | ✅ | — | Decimal | |
126 | | -| `vortex.decimal_byte_parts` | `DecimalBytePartsEncoding` | ✅ | ✅ | — | Decimal byte parts | |
127 | | -| `vortex.datetimeparts` | `DateTimePartsEncoding` | ✅ | ✅ | — | Timestamp parts | |
128 | | -| `vortex.list` | `ListEncoding` | ✅ | ✅ | — | two children: elements + offsets (I64); `ListArray`; cascadable offsets via `decodeChildAs` | |
129 | | -| `vortex.listview` | `ListViewEncoding` | ✅ | ✅ | — | three children: elements + offsets (len N) + sizes (len N); fixture uses U16 for both | |
130 | | -| `vortex.fixed_size_list` | `FixedSizeListEncoding` | ✅ | ✅ | — | one child: flat elements; no offsets | |
131 | | -| `vortex.zstd` | `ZstdEncoding` | ✅ | ✅ | — | Primitive, Utf8, Binary (no dict, no nullable); uses airlift/aircompressor | |
132 | | -| `vortex.masked` | `MaskedEncoding` | ✅ | ❌ | — | child[0]=payload (non-nullable), child[1]=validity Bool (optional); no S3 fixture in v0.72.0 | |
133 | | -| `vortex.patched` | — | ❌ | ❌ | unknown | ID registered; no decoder yet; no S3 fixture in v0.72.0; passthrough via `allowUnknown()` | |
134 | | -| `vortex.variant` | — | ❌ | ❌ | unknown | ID registered; no decoder yet; no S3 fixture in v0.72.0; passthrough via `allowUnknown()` | |
| 98 | +See [docs/compatibility.md](docs/compatibility.md) for the full encoding support table and S3 fixture status. |
135 | 99 |
|
136 | 100 | ### `vortex.zstd` known limitations |
137 | 101 |
|
@@ -217,49 +181,4 @@ don't start before decode lands. |
217 | 181 | **Decision**: keep `Encoder` stub until a real write consumer materializes. Reassess |
218 | 182 | post-decode + post-`vortex-arrow` bridge. |
219 | 183 |
|
220 | | -### S3 Fixture Status (`v0.72.0/arrays/`) |
221 | | - |
222 | | -| Fixture | Status | Blocker | |
223 | | -|----------------------------------|--------|-------------------------------| |
224 | | -| `primitives.vortex` | ✅ | | |
225 | | -| `alp.vortex` | ✅ | | |
226 | | -| `bitpacked.vortex` | ✅ | | |
227 | | -| `booleans.vortex` | ✅ | | |
228 | | -| `constant.vortex` | ✅ | | |
229 | | -| `for.vortex` | ✅ | | |
230 | | -| `fsst.vortex` | ✅ | | |
231 | | -| `runend.vortex` | ✅ | | |
232 | | -| `sequence.vortex` | ✅ | | |
233 | | -| `varbin.vortex` | ✅ | | |
234 | | -| `struct_nested.vortex` | ✅ | | |
235 | | -| `null.vortex` | ✅ | | |
236 | | -| `bytebool.vortex` | ✅ | | |
237 | | -| `zigzag.vortex` | ✅ | | |
238 | | -| `datetime.vortex` | ✅ | | |
239 | | -| `dict.vortex` | ✅ | | |
240 | | -| `sparse.vortex` | ✅ | | |
241 | | -| `varbinview.vortex` | ✅ | | |
242 | | -| `chunked.vortex` | ✅ | | |
243 | | -| `rle.vortex` | ✅ | | |
244 | | -| `alprd.vortex` | ✅ | | |
245 | | -| `decimal.vortex` | ✅ | | |
246 | | -| `decimal_byte_parts.vortex` | ✅ | | |
247 | | -| `datetimeparts.vortex` | ✅ | | |
248 | | -| `list.vortex` | ✅ | | |
249 | | -| `listview.vortex` | ✅ | | |
250 | | -| `fixed_size_list.vortex` | ✅ | | |
251 | | -| `zstd.vortex` | ✅ | | |
252 | | -| `tpch_lineitem.compact.vortex` | ✅ | | |
253 | | -| `tpch_lineitem.regular.vortex` | ✅ | | |
254 | | -| `tpch_orders.compact.vortex` | ✅ | | |
255 | | -| `tpch_orders.regular.vortex` | ✅ | | |
256 | | -| `pco.vortex` | ✅ | | |
257 | | -| `clickbench_hits_5k.compact.vortex` | ✅ | | |
258 | | -| `clickbench_hits_5k.regular.vortex` | ✅ | | |
259 | | -| `masked.vortex` | ❓ | no fixture in v0.72.0; `vortex.masked` ID registered | |
260 | | -| `patched.vortex` | ❓ | no fixture in v0.72.0; `vortex.patched` ID registered; passthrough via `allowUnknown()` | |
261 | | -| `variant.vortex` | ❓ | no fixture in v0.72.0; `vortex.variant` ID registered; passthrough via `allowUnknown()` | |
262 | | - |
263 | | -**Score: 35/35** |
264 | | - |
265 | 184 |
|
0 commit comments