Skip to content

[SkipRecovery] Restore randomized regex and decimal window coverage [reduced-it] [databricks] - #15972

Open
wjxiz1992 wants to merge 2 commits into
NVIDIA:mainfrom
wjxiz1992:codex/skip-recovery-regex-window
Open

[SkipRecovery] Restore randomized regex and decimal window coverage [reduced-it] [databricks]#15972
wjxiz1992 wants to merge 2 commits into
NVIDIA:mainfrom
wjxiz1992:codex/skip-recovery-regex-window

Conversation

@wjxiz1992

@wjxiz1992 wjxiz1992 commented Sep 11, 2026

Copy link
Copy Markdown
Collaborator

JaCoCo production line coverage: +0 lines (measured: delta-lake, iceberg, shuffle-plugin, sql-plugin, udf-compiler; Scala 2.12, shim 350, anchor 2d438c020496, vs compatible nightly b34)

Fixes #9731. Refs #7429 (decimal-sorting test guard only).

Description

This test-only PR removes two stale restrictions after their underlying fixes landed: it restores randomized regex-replacement inputs and one nullable-decimal ROWS-window case on fixed Apache Spark 3.3 releases. Production behavior, SQL queries, and parity assertions are unchanged. The documented decimal RANGE limitation and existing Databricks/vendor guards remain in place.

No new test function or parameter dimension is added. No CPU/GPU divergence was observed in the recovered cases.

AI assistance: The change and PR description were prepared with Codex assistance.

Validation

  • Fresh Maven packaging for shims 350 and 334: BUILD SUCCESS for both, using isolated Maven caches.
  • Complete regexp_test.py: 95 passed, 1 existing skip on each of Apache Spark 3.5.0 and 3.3.4.
  • Complete window_function_test.py on Spark 3.3.4: 914 passed, 136 existing skips, 4 existing xfails; the recovered decimal case passed.
  • Regex seeds 1700077791, 0, 42, and 20260911: all passed. Exact historical inputs returned the same PRODPROD<NEL>PROD on CPU/GPU, where <NEL> denotes U+0085, with GpuRegExpReplace captured. The unmasked decimal case compared all 2,048 rows with GPU window execution confirmed.
  • Forced-OOM checks: 78 passed on Spark 3.5.0 across the two affected functions and the guard's ranking-test caller; 8 passed on Spark 3.3.4 with TEST_TYPE=pre-commit and REDUCED_IT=true. All eight recovered-function cases were retained. The regex test has no parametrization, and the window test's matrix is seven data generators × one batch size. Thus [reduced-it] retains every recovered combination.
  • Version-guard boundary checks: 24 passed, including multi-digit patch versions and unchanged older, Databricks, and vendor-version behavior.
Environment and coverage details

Apache Spark 3.3.4 / 3.5.0, Python 3.10.18, Scala 2.12, JDK 17, UTC, RTX 5880 Ada. Databricks was not run locally; its existing guards are preserved and the title requests Databricks CI.

Both affected functions were replayed with the exact compatible nightly anchor JAR: 8 passed. All five regenerated module baseline counters matched the published report, with no class-ID mismatches and zero marginal production lines. This measures shim 350 against compatible b34, not the separately refreshed latest b21 report or a Spark 3.3 coverage total.

Checklists

Documentation

  • Updated for new or modified user-facing features or behaviors
  • No user-facing change

Testing

  • Added or modified tests to cover new code paths
  • Covered by existing tests
    (Please provide the names of the existing tests in the PR description.)
  • Not required

Performance

  • Tests ran and results are added in the PR description
  • Issue filed with a link in the PR description
  • Not required

Copilot AI lite review requested due to automatic review settings September 11, 2026 07:57
@wjxiz1992 wjxiz1992 added the test Only impacts tests label Sep 11, 2026
@wjxiz1992 wjxiz1992 self-assigned this Sep 11, 2026
@greptile-apps

greptile-apps Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

RetriggerConfidence Score: 5/5

The PR appears safe to merge; no blocking issues were identified.

Summary

  • Retains historical NEL inputs and adds other line-terminator special cases while preserving reproducibility through the shared test seed.
  • Uses the Apache runtime predicate to preserve existing Databricks and vendor guards.
  • Leaves SQL queries, parity assertions, and decimal RANGE restrictions unchanged.
  • No actionable new defects or repository-rule violations were identified. Integration tests were not rerun during this review.

Reviews (2) · Last reviewed commit: "Restrict decimal sorting guard recovery ..."

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Restrict the decimal guard to Apache runtimes so vendor Spark environments remain guarded.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

This test-only PR restores randomized regex coverage and re-enables nullable decimal window coverage for supported Apache Spark versions.

Changes:

  • Restores historical Unicode line-terminator inputs and removes the fixed regex seed.
  • Updates decimal version guards while retaining existing vendor and Databricks guards.
File summaries
File Summary
integration_tests/src/main/python/window_function_test.py Updates decimal version guarding; the condition should be limited to plain Apache runtimes.
integration_tests/src/main/python/regexp_test.py Restores randomized regex inputs and regression coverage.
Review details
  • Files reviewed: 2/2 changed files
  • Comments generated: 1
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +3090 to +3092
apache_33 = re.fullmatch(r"3\.3\.([0-9]+)", v)
if apache_33 and not is_databricks_runtime():
return int(apache_33[1]) == 0
Signed-off-by: Allen Xu <allxu@nvidia.com>
@wjxiz1992

Copy link
Copy Markdown
Collaborator Author

build

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

Labels

test Only impacts tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] Integration test test_re_replace_all fails with a corner case

3 participants