Uh oh!
There was an error while loading. Please reload this page.
[fix](paimon) Preserve system table validation details - #66408
Conversation
### What problem does this PR solve? Issue Number: None Related PR: None Problem Summary: Paimon system table safety validation wrapped actionable option errors with a generic connector message, so SQL clients could not identify the invalid option. ### Release note Paimon system table validation errors now report the invalid reader option. ### Check List (For Author) - Test: Unit Test - Targeted Paimon system table validation test - Paimon connector package lifecycle and full module tests - Behavior changed: Yes - Invalid Paimon system table reader options are visible in the SQL error message - Does this need documentation: No
hello-stephen
commented
Aug 4, 2026
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
Gabriel39
commented
Aug 4, 2026
run buildall |
Gabriel39
commented
Aug 4, 2026
/review |
There was a problem hiding this comment.
Review opinion: no blocking correctness issues found; this change is ready from a code-review perspective.
Critical checkpoints:
- Goal and proof: the patch preserves the actionable Paimon reader-option validation message in a stable
DorisConnectorExceptionwhile retaining the originalIllegalArgumentExceptioncause. The new unit assertion is mutation-strong against the old generic message. The existingtest_paimon_jni_reader_guardrailsregression also checks that the system-table SQL failure containsscan.manifest.parallelismand that a safe relation override succeeds. - Scope and end-to-end behavior: the change is small and focused. Both scan-node property generation and split planning share
resolveScanTable; the connector SPI/TCCL wrapper and Nereids/MySQL error path preserve the exception message. Checked catalog and authentication failures still use the generic contextual message and retain their causes. Normal-table validation behavior is unchanged. - Parallel paths and conditions: pinned system sources, authenticated fallback reload, safe relation overrides, unsupported/stale system handles, wrapper normalization, and the normal-table path were traced. No functionally parallel system-table path bypasses this boundary, and the new catch condition has a concrete user-correctable failure path.
- Concurrency, lifecycle, configuration, compatibility, persistence, and writes: not applicable to this exception-classification-only change. It adds no shared state, threads, locks, lifecycle ownership, configuration, SPI/API or serialization surface, FE-BE value, transaction, EditLog, or data-write behavior.
- Tests, observability, and performance: adjacent unit tests cover cause typing and the relevant option/source variants; the existing regression is the SQL-facing oracle. The more specific error improves observability without needing a log or metric, and the catch is constant-cost and off the success path. Per the review-only runner contract I did not run builds or tests locally. CheckStyle was green at review time; FE UT and compile checks were still queued.
- User focus: no additional focus was supplied, so the entire two-file PR was reviewed without a narrower scope.
Review completion: one full convergence round completed. The two full-coverage reviewers and the separate risk-focused reviewer all returned NO_NEW_VALUABLE_FINDINGS against the same ledger and empty inline-comment set.
hello-stephen
commented
Aug 4, 2026
FE UT Coverage ReportIncrement line coverage `` 🎉 |
PR approved by at least one committer and no changes requested. |
PR approved by anyone and no changes requested. |
hello-stephen
commented
Aug 4, 2026
TPC-H: Total hot run time: 28855 ms |
hello-stephen
commented
Aug 4, 2026
TPC-DS: Total hot run time: 166660 ms |
hello-stephen
commented
Aug 4, 2026
ClickBench: Total hot run time: 23.95 s |
Uh oh!
There was an error while loading. Please reload this page.
What problem does this PR solve?
Issue Number: None
Related PR: None
Problem Summary:
Paimon system table safety validation wrapped actionable reader-option errors with a generic connector message. As a result, SQL clients could not identify the invalid option even though the original cause contained it.
This change preserves
IllegalArgumentExceptionvalidation details at the SQL boundary while retaining the original cause. Other unexpected failures continue to use the generic connector message.Release note
Paimon system table validation errors now report the invalid reader option.
Check List (For Author)
Test
mvn -f fe/pom.xml -pl :fe-connector-paimon -am test -Dtest=PaimonScanPlanProviderTest#resolveSystemScanTableValidatesHiddenDataTable -DfailIfNoTests=falsemvn -f fe/pom.xml -pl :fe-connector-paimon -am package -Dmaven.build.cache.enabled=false -DfailIfNoTests=falseBehavior changed:
Does this need documentation?
Check List (For Reviewer who merge this PR)