You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Depends on:#508 (Delta/Auto). Please review that one first — this branch is stacked on top of it, so the diff against main currently includes both commits.
This adds reading of already-written changelog files (changelog_manifest_list) plus an AuditLogTable view that exposes rowkind as the first column.
Important: this does not generate lookup/compact changelogs. If a snapshot has no changelog list, we just skip it / return empty for that snapshot rather than inventing files.
Brief change log
Implement Changelog planning over (start, end]
TableScan::plan_snapshot_changelog reusing the existing split pipeline
New AuditLogTable + Changelog path on the incremental API
No storage format change; only reads existing changelog manifests/files
Documentation
No standalone docs in this PR (SQL docs come with the DataFusion follow-up).
Review tip
If you're looking at the full branch vs main, the interesting commit for this PR is the top one (feat: support existing changelog incremental reads). The parent is #508.
The Delta audit at table_read.rs:243 calls audit_raw_stream(plan, false) and then hard-codes all rowkinds to +I. Even when changelog-producer=none is set for the PK table, Delta files still contain _VALUE_KIND; Java incremental audit tests explicitly require types such as -D to be preserved, so delete/update records are incorrectly reported as inserts. It is recommended that PK Delta also read _VALUE_KIND and add regression tests for DELETE/UPDATE operations. Additionally, the rowkind field uses the ID -1 and varchar(8), which is inconsistent with Java’s Integer.MAX_VALUE-4 and the maximum varchar length; synchronization is recommended. The existing incremental/audit/exception rowkind tests have passed 16 out of 16, but do not cover Delta delete records.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Purpose
Linked issue: close #504
Depends on: #508 (Delta/Auto). Please review that one first — this branch is stacked on top of it, so the diff against
maincurrently includes both commits.This adds reading of already-written changelog files (
changelog_manifest_list) plus anAuditLogTableview that exposesrowkindas the first column.Important: this does not generate lookup/compact changelogs. If a snapshot has no changelog list, we just skip it / return empty for that snapshot rather than inventing files.
Brief change log
(start, end]TableScan::plan_snapshot_changelogreusing the existing split pipelineAuditLogTablewrapper:rowkindfirst, optional_SEQUENCE_NUMBERTableRead::to_audit_log_arrowfor Delta (all+I) and Changelog (from_VALUE_KIND)nonechangelog-producer=inputfixtures and multi-snapshot rangesDiff mode is still unsupported here on purpose.
Tests
API and Format
AuditLogTable+ Changelog path on the incremental APIDocumentation
No standalone docs in this PR (SQL docs come with the DataFusion follow-up).
Review tip
If you're looking at the full branch vs
main, the interesting commit for this PR is the top one (feat: support existing changelog incremental reads). The parent is #508.