stevomitric opened a new pull request, #56991:
URL: https://github.com/apache/spark/pull/56991

   ## What changes were proposed in this pull request?
   
   Moves the last hardcoded `TimeType` check out of the vectorized reader into 
the Types Framework. `VectorizedColumnReader.isLazyDecodingSupported` decided 
lazy dictionary decoding for TIME columns via the annotation-keyed 
`ParquetVectorUpdaterFactory.isTimeTypeMatched(MICROS|NANOS)`; it now 
dispatches framework-first (like `getVectorUpdater`):
   
   - `ParquetTypeOps.supportsLazyDictionaryDecoding(descriptor): Boolean` 
(default `true`) + Java entry point `supportsLazyDictionaryDecodingOrNull` 
(null for non-framework types).
   - `TimeTypeParquetOps` overrides it to `false` (its updater does per-value 
micros→nanos + truncation that lazy decoding would bypass).
   - `VectorizedColumnReader.isLazyDecodingSupported` dispatches 
framework-first; the two `isTimeTypeMatched` arms are removed.
   - Removes the now-dead `ParquetVectorUpdaterFactory.isTimeTypeMatched` and 
its unused import.
   
   ### Why are the changes needed?
   
   `isTimeTypeMatched` was the last hardcoded `TimeType` reference in the 
vectorized path after the updater moved into the framework. The decision also 
becomes more precise: it now keys on the requested Spark type, so a TIME column 
read as raw `LongType` (identity copy) is lazy-decodable, whereas the 
annotation-keyed check disabled it.
   
   ### Does this PR introduce _any_ user-facing change?
   
   No.
   
   ### How was this patch tested?
   
   `TimeTypeParquetOpsSuite` (new unit test for the predicate), 
`ParquetVectorUpdaterSuite`, and `ParquetIOSuite` TIME tests under 
`withAllParquetReaders` (dict on/off).
   
   ### Was this patch authored or co-authored using generative AI tooling?
   
   Generated-by: Claude Code (Claude Opus 4.8)


-- 
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]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to