Commit 46817aa
fix(encoding): correct DictMetadata proto field order vs Rust
Rust serializes DictMetadata with values_len at tag=1 and codes_ptype
at tag=2. Our Java proto had them reversed (codes_ptype=1, values_len=2),
causing the wrong field to be read for each. Root symptom: codePType
was decoded as a nonsensical value (U64 or F16) from the values_len
varint, crashing in DictCodec.readCode.
Swap the field numbers to match the Rust wire format. Also add a
targeted integration test that exercises dict encoding by writing
10k rows with only 3 unique F64 values.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>1 parent 62fba5a commit 46817aa
1 file changed
Lines changed: 32 additions & 0 deletions
File tree
- integration/src/test/java/io/github/dfa1/vortex/integration
Lines changed: 32 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
102 | 102 | | |
103 | 103 | | |
104 | 104 | | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
105 | 137 | | |
106 | 138 | | |
107 | 139 | | |
| |||
0 commit comments