|
| 1 | +# Codec Coverage |
| 2 | + |
| 3 | +## Implemented |
| 4 | + |
| 5 | +| Codec ID | Class | Dtypes supported | |
| 6 | +|------------------------|---------------------|-----------------------------------------| |
| 7 | +| `vortex.primitive` | `PrimitiveCodec` | all `PType` (I8–I64, U8–U64, F32, F64) | |
| 8 | +| `vortex.bool` | `BoolCodec` | Bool (bit-packed) | |
| 9 | +| `vortex.struct` | `StructCodec` | Struct (single-field unwrap + multi-field → StructArray) | |
| 10 | +| `vortex.constant` | `ConstantCodec` | Primitive, Utf8, Binary, Bool, Null, Decimal, Extension | |
| 11 | +| `vortex.dict` | `DictCodec` | Utf8/Binary values (VarBin only; VarBinView blocks dict.vortex) | |
| 12 | +| `vortex.sparse` | `SparseCodec` | Primitive (VarBinView blocks sparse.vortex) | |
| 13 | +| `vortex.varbin` | `VarBinCodec` | Utf8, Binary | |
| 14 | +| `vortex.fsst` | `FsstCodec` | Utf8, Binary | |
| 15 | +| `vortex.runend` | `RunEndCodec` | Primitive, Utf8/Binary, Bool | |
| 16 | +| `vortex.sequence` | `SequenceCodec` | Primitive | |
| 17 | +| `vortex.alp` | `AlpCodec` | F64, F32 | |
| 18 | +| `fastlanes.bitpacked` | `BitpackedCodec` | unsigned integer PTypes | |
| 19 | +| `fastlanes.for` | `FrameOfReferenceCodec` | integer PTypes | |
| 20 | +| `fastlanes.delta` | `DeltaCodec` | integer PTypes | |
| 21 | +| `vortex.pco` | `PcoCodec` | stub — throws (ANS + bin tokenization not ported) | |
| 22 | + |
| 23 | +## Missing |
| 24 | + |
| 25 | +| Codec ID | Effort | Unblocks | |
| 26 | +|----------------------------|---------|-------------------------------------------------| |
| 27 | +| `vortex.null` | trivial | `null.vortex` | |
| 28 | +| `vortex.bytebool` | low | `bytebool.vortex` | |
| 29 | +| `vortex.zigzag` | low | `zigzag.vortex` | |
| 30 | +| `vortex.ext` | low | `datetime.vortex` (transparent storage wrapper) | |
| 31 | +| `vortex.varbinview` | medium | `varbinview.vortex`, `dict.vortex`, `sparse.vortex` | |
| 32 | +| `vortex.chunked` | medium | `chunked.vortex` (segment-level chunked array) | |
| 33 | +| `fastlanes.rle` | medium | `rle.vortex` | |
| 34 | +| `vortex.alprd` | medium | `alprd.vortex` | |
| 35 | +| `vortex.decimal` | medium | `decimal.vortex` | |
| 36 | +| `vortex.decimal_byte_parts`| medium | `decimal_byte_parts.vortex` | |
| 37 | +| `vortex.datetimeparts` | medium | `datetimeparts.vortex` | |
| 38 | +| `vortex.list` | hard | `list.vortex` (needs list array model) | |
| 39 | +| `vortex.listview` | hard | `listview.vortex` | |
| 40 | +| `vortex.fixed_size_list` | hard | `fixed_size_list.vortex` | |
| 41 | +| `vortex.zstd` | hard | `zstd.vortex` (needs zstd native lib) | |
| 42 | +| `vortex.pco` (full) | very hard | `pco.vortex`, `tpch_*.vortex`, `clickbench_*.vortex` | |
| 43 | + |
| 44 | +## S3 Fixture Status (`v0.72.0/arrays/`) |
| 45 | + |
| 46 | +| Fixture | Status | Blocker | |
| 47 | +|----------------------------------|--------|-------------------------------| |
| 48 | +| `primitives.vortex` | ✅ | | |
| 49 | +| `alp.vortex` | ✅ | | |
| 50 | +| `bitpacked.vortex` | ✅ | | |
| 51 | +| `booleans.vortex` | ✅ | | |
| 52 | +| `constant.vortex` | ✅ | | |
| 53 | +| `for.vortex` | ✅ | | |
| 54 | +| `fsst.vortex` | ✅ | | |
| 55 | +| `runend.vortex` | ✅ | | |
| 56 | +| `sequence.vortex` | ✅ | | |
| 57 | +| `varbin.vortex` | ✅ | | |
| 58 | +| `struct_nested.vortex` | ✅ | | |
| 59 | +| `null.vortex` | ❌ | `vortex.null` not registered | |
| 60 | +| `bytebool.vortex` | ❌ | `vortex.bytebool` missing | |
| 61 | +| `zigzag.vortex` | ❌ | `vortex.zigzag` missing | |
| 62 | +| `datetime.vortex` | ❌ | `vortex.ext` missing | |
| 63 | +| `dict.vortex` | ❌ | `vortex.varbinview` missing | |
| 64 | +| `sparse.vortex` | ❌ | `vortex.varbinview` missing | |
| 65 | +| `varbinview.vortex` | ❌ | `vortex.varbinview` missing | |
| 66 | +| `chunked.vortex` | ❌ | `vortex.chunked` at segment level | |
| 67 | +| `rle.vortex` | ❌ | `fastlanes.rle` missing | |
| 68 | +| `alprd.vortex` | ❌ | `vortex.alprd` missing | |
| 69 | +| `decimal.vortex` | ❌ | `vortex.decimal` missing | |
| 70 | +| `decimal_byte_parts.vortex` | ❌ | `vortex.decimal_byte_parts` missing | |
| 71 | +| `datetimeparts.vortex` | ❌ | `vortex.datetimeparts` missing | |
| 72 | +| `list.vortex` | ❌ | `vortex.list` + list array model | |
| 73 | +| `listview.vortex` | ❌ | `vortex.listview` missing | |
| 74 | +| `fixed_size_list.vortex` | ❌ | `vortex.fixed_size_list` missing | |
| 75 | +| `zstd.vortex` | ❌ | needs zstd native library | |
| 76 | +| `tpch_lineitem.compact.vortex` | ❌ | `vortex.pco` | |
| 77 | +| `tpch_lineitem.regular.vortex` | ❌ | `vortex.pco` | |
| 78 | +| `tpch_orders.compact.vortex` | ❌ | `vortex.pco` | |
| 79 | +| `tpch_orders.regular.vortex` | ❌ | `vortex.pco` | |
| 80 | +| `pco.vortex` | ❌ | `vortex.pco` | |
| 81 | +| `clickbench_hits_5k.compact.vortex` | ❌ | `vortex.pco` | |
| 82 | +| `clickbench_hits_5k.regular.vortex` | ❌ | `vortex.pco` | |
| 83 | + |
| 84 | +**Score: 11/35** (including `for.vortex` scanned separately from `scan_fixture_decodesAllRows`) |
0 commit comments