Skip to content

[auto-merge] bot-auto-merge-release/26.08 to main [skip ci] [bot] - #4931

Merged
nvauto merged 2 commits into
mainfrom
bot-auto-merge-release/26.08
Aug 3, 2026
Merged

[auto-merge] bot-auto-merge-release/26.08 to main [skip ci] [bot]#4931
nvauto merged 2 commits into
mainfrom
bot-auto-merge-release/26.08

Conversation

@nvauto

@nvauto nvauto commented Aug 3, 2026

Copy link
Copy Markdown
Collaborator

auto-merge triggered by github actions on bot-auto-merge-release/26.08 to create a PR keeping main up-to-date. If this PR is unable to be merged due to conflicts, it will remain open until manually fix.

res-life and others added 2 commits August 3, 2026 16:01
Contributes to NVIDIA/cudf-spark#15449.

### Description

GPU ORC timestamp conversion needs to match Apache ORC's
`java.util.TimeZone` semantics for writer and reader timezones.

This change:

- preserves ORC's `TimeZone.hasSameRules` behavior so same-rule
writer/reader
  pairs skip cross-timezone conversion;
- preserves fixed-offset and short timezone IDs by resolving
  `TimeZone` directly from `ZoneId`;
- adds an ORC-compatible `convertFromUtc` path for timestamp columns;
- exposes the reader timezone's first transition so the plugin can limit
  historical rule correction to values before that transition;
- preserves Java/ORC overflow, negative timestamp, null-mask,
sliced-column,
  CUDA stream, and memory-resource behavior.

Without the direct `ZoneId` overload, values such as `+05:30` and short
IDs
such as `EST` were silently interpreted as GMT when checking
`hasSameRules`. That could incorrectly skip conversion and produce a
constant
timezone offset error.

### Testing

- `GpuTimeZoneDBTest`: `8 passed`, including `UTC` in both directions
with
  `+05:30` and `EST`.
- `pre-commit` checks passed; no C/C++/CUDA files were changed by the
follow-up
  fixed-offset commit.
- CUDA 12 container build: `BUILD SUCCESS`.
- Dependent cuDF Spark A/B:
  - baseline reproduced all 7 fixed-seed failures;
  - fixed build passed the same 7 cases.

---------

Signed-off-by: Chong Gao <chongg@nvidia.com>
Co-authored-by: Chong Gao <res_life@163.com>
Signed-off-by: spark-rapids automation <70000568+nvauto@users.noreply.github.com>
@nvauto
nvauto merged commit 9a78379 into main Aug 3, 2026
@nvauto

nvauto commented Aug 3, 2026

Copy link
Copy Markdown
Collaborator Author

SUCCESS - auto-merge

@nvauto
nvauto deleted the bot-auto-merge-release/26.08 branch August 3, 2026 08:02
@greptile-apps

greptile-apps Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

The PR updates the main branch from the 26.08 release line, advances the cuDF dependency pins, and extends ORC timezone compatibility.

  • Adds GPU support for Apache ORC convertFromUtc semantics.
  • Introduces a same-rules fast path and terminal-offset sentinel handling for writer/reader timezone conversion.
  • Improves DST-rule extraction for TimeZone implementations with unreliable daylight-use flags.
  • Expands timezone conversion, boundary, slice, fixed-offset, and failure-path tests.
  • Advances cuDF, rapids-cmake, KvikIO, and RMM pins toward the 26.10 development line.

Confidence Score: 5/5

The PR appears safe to merge; no concrete changed-code defect remains after checking the new timezone conversion paths and coordinated dependency pins.

The Java, JNI, and CUDA interfaces remain aligned, transition and DST lookup behavior matches the CPU reference semantics for supported timestamps, and the new tests exercise the relevant boundaries and optimized paths.

Important Files Changed

Filename Overview
src/main/java/com/nvidia/spark/rapids/jni/GpuTimeZoneDB.java Adds ORC from-UTC APIs, context metadata, same-rules detection, and terminal transition sentinels with matching JNI parameters.
src/main/cpp/src/timezones.cu Implements the from-UTC CUDA conversion and optimizes equal-rule writer/reader conversion while preserving slice and null handling.
src/main/cpp/src/GpuTimeZoneDBJni.cpp Extends the JNI writer/reader signature and adds the native bridge for ORC from-UTC conversion.
src/main/java/com/nvidia/spark/rapids/jni/OrcDstRuleExtractor.java Probes actual timezone offsets before trusting useDaylightTime() and derives savings from observed transitions when necessary.
src/test/java/com/nvidia/spark/rapids/jni/GpuTimeZoneDBTest.java Adds broad coverage for fixed offsets, transition boundaries, sliced columns, nulls, invalid types, closed contexts, and from-UTC conversion.
thirdparty/cudf-pins/versions.json Advances KvikIO and RMM dependency pins from 26.08 to 26.10 in coordination with the cuDF submodule update.

Sequence Diagram

sequenceDiagram
  participant Caller as Java caller
  participant Context as OrcTimezoneContext
  participant JNI as GpuTimeZoneDBJni
  participant GPU as CUDA timezone kernel
  Caller->>Context: Build writer/reader timezone metadata
  Context->>JNI: Convert timestamps with tables, offsets, and DST rules
  alt Writer and reader rules match
    JNI->>GPU: Apply ORC base adjustment only
  else Rules differ
    JNI->>GPU: Apply transition and recurring-DST lookup
  end
  GPU-->>Caller: TIMESTAMP_MICROSECONDS column
Loading

Reviews (1): Last reviewed commit: "Auto-merge use main versions" | Re-trigger Greptile

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants