Skip to content

Spark 4.2: Add test for rewrite_table_path after expiring rewritten position deletes - #18530

Open
rshdhere wants to merge 1 commit into
apache:mainfrom
rshdhere:spark-42-rewrite-table-path-expired-deletes-test
Open

rshdhere wants to merge 1 commit into
apache:mainfrom
rshdhere:spark-42-rewrite-table-path-expired-deletes-test

Conversation

@rshdhere

Copy link
Copy Markdown
Contributor

The scenario in #16662 (rewrite position delete files, expire the snapshot that added the old ones, then run rewrite_table_path) no longer fails on main. #15470 changed the action to collect position delete files with a ManifestReader, which returns only live entries, so DELETED entries whose files were removed by expiration are no longer opened. Nothing in the test suite covered this case, so this adds a regression test. Run against the commit before #15470, the same test fails with NotFoundException: File does not exist: .../old-deletes.parquet; on main it passes. The core-only fix proposed in #16669 is no longer needed for this path.

Test plan: positionDeletesRewrittenAndExpired (v2) checks that the expired delete file is gone, that only the live delete file is rewritten, and that the copied target table reads the expected row.

Closes #16662

…osition deletes

Rewriting position delete files and then expiring the snapshot that added
the old ones leaves DELETED entries in the manifest whose files no longer
exist. rewrite_table_path used to try to rewrite those files and fail with
a NotFoundException. That was fixed by apache#15470, but nothing covered this
case, so add a regression test.
@github-actions github-actions Bot added the spark label Oct 15, 2026
@rshdhere

Copy link
Copy Markdown
Contributor Author

@amogh-jahagirdar @szehon-ho could you take a look when you have a chance? This adds a regression test for the #16662 scenario, which #15470 fixed. cc @leeyam24

This branch has not been deployed

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

rewrite_table_path throws FileNotFoundException on DELETED position delete manifest entries

1 participant