andygrove opened a new pull request, #6340:
URL: https://github.com/apache/datafusion-comet/pull/6340

   ## Which issue does this PR close?
   
   No issue. This follows #6337, which adds the timezone handling page to the 
contributor guide, and is part of the timezone EPIC #6335.
   
   ## Rationale for this change
   
   #6337 adds `docs/source/contributor-guide/timezones.md`, but the review 
skills don't point at it. A review of a datetime expression, a cast, a scan or 
the JVM/native boundary has no reason to open the page.
   
   Most of the bugs in #6335 are ones a review could have caught:
   - `timestamp_seconds` returns a `TimestampType` result with no timezone 
label (#6328)
   - `date_trunc` stamps the session timezone on its result, so comparisons 
fail in `Etc/UTC` sessions, where it runs natively (#6330)
   - `CometDays` reads `SQLConf.get.sessionLocalTimeZone` instead of the 
timezone on the expression (#6333)
   
   These pass any test that only projects the result.
   
   No single area skill owns timezone handling. It spans the serde, the native 
kernels, the scans, the JVM/native boundary and the codegen dispatcher. So the 
main check goes in `review-comet-pr`, and the area skills get short items for 
the parts that are specific to them.
   
   ## What changes are included in this PR?
   
   - **`review-comet-pr`**: step 1 says to read `timezones.md` for any PR that 
deals with timestamps or the session timezone. Step 5 gets a "Timestamps and 
timezones" check. It covers how to tell whether a PR is affected (including a 
`grep` over the diff), the problems to look for first, and which parts of the 
page a PR can make stale.
   - **`review-comet-expression-pr`**:
     - The page goes in the guide table.
     - New checklist items cover serializing `expr.timeZoneId`, labelling 
`TimestampType` results `"UTC"`, DataFusion datetime functions that evaluate in 
UTC, and UTC fast paths.
     - The timezone test item now follows the page's testing section.
     - "Timestamp result mislabelled" is added to the common findings.
   - **`review-comet-ffi-pr`**: timestamps cross the boundary unconverted, and 
a new JVM producer labels them with `CometArrowStream.NATIVE_TIMEZONE`.
   - **`review-comet-iceberg-write-pr`**: timestamp partition values are UTC. 
iceberg-rust's `years` and `months` follow the column's timezone label 
(apache/iceberg-rust#3142), so they are only right because 
`decorate_batch_with_field_ids` relabels `timestamptz` columns `+00:00` before 
partitioning.
   
   This should merge after #6337, because the skills point at the page it adds.
   
   ## How are these changes tested?
   
   Documentation only. `prettier --check` passes on the changed files. I 
checked every name the skills cite against `main`: 
`CometArrowStream.NATIVE_TIMEZONE`, `array_with_timezone`, `is_utc_timezone` in 
`extract_date_part.rs`, the Iceberg transform kernels, and 
`decorate_batch_with_field_ids` along with where it runs relative to 
partitioning. I also tried the diff search on recent commits. It matches three 
datetime commits, and it doesn't match three shuffle commits or #6250.
   


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