tchivs commented on PR #4530:
URL: https://github.com/apache/flink-cdc/pull/4530#issuecomment-5903854509

   Following the review comments, TIME now uses a single memory layout at every 
precision, so the public API change is gone.
   
   - `writeTime` stores the same eight-byte value for all precisions, mirroring 
`writeTimestamp`; the `precision` argument no longer selects the layout. Same 
for the array writer's null setter and `calculateFixLengthPartSize`.
   - The `getTime(int, int)` additions to `RecordData` and `ArrayData` are 
removed. `RecordData` is back to upstream apart from the layout table in its 
javadoc; `ArrayData` gains one precision-free `getTime(int)`.
   - `TimeDataSerializer` has a single encoding path; the snapshot still reads 
the previous four-byte millisecond payload.
   
   Pre-upgrade data is decoded on the reader side rather than through the 
migration channel: a row slot is decoded by its tag bit, an array by its 
payload length (exact for N >= 2, and for N == 1 the tag bit decides).
   
   This corrects my earlier note: with one layout, `TIME(p <= 3)` is no longer 
byte-identical either, so old TIME state is read through the same legacy path 
at every precision.
   
   Also added the requested transform and routing coverage: `TIME(0)` / 
`TIME(3)` / `TIME(6)` / `TIME(9)` columns are projected, reordered and routed, 
and asserted per precision.
   
   Verified on the JDK 11 baseline with `clean`: `flink-cdc-common`, 
`flink-cdc-runtime` and `flink-cdc-composer` are green, including the new 
transform and routing cases.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to