morningman opened a new pull request, #69552:
URL: https://github.com/apache/doris/pull/69552
### What problem does this PR solve?
Issue Number: None
Related PR: #66246, #66007, #66112
Problem Summary:
**In short.** This ports test assertions from branch-4.1 #66246 that master
never got. #66246 backported #66112, #66223 and #66007 to branch-4.1 and added
checks for historical joins, branch reads and DESC comments on Iceberg tables.
Master already behaves as those checks expect, but its suites either lack them
or still assert the old, negative contract. No production code changes.
**Background.** An audit of every block of #66246 that branch-4.2 still has,
against master, found these test gaps. Everything else in #66246 is on master
in another form (mostly in the connector plugins) or was replaced on master.
One behavior differs on purpose: a plain Hudi read on master is not pinned to
the instant seen at analysis (#64304). This PR leaves that alone.
**The problem, and what it cost.** Without the checks, a regression in these
paths would go unnoticed, and two suites still describe the current behavior as
a defect:
| Suite | Master today | After this PR |
|---|---|---|
| `test_iceberg_schema_dual_relation_matrix` | no check that a historical
relation and the latest relation of the same table keep their own schemas in
one join | both join orders checked: `old_name` on the snapshot, `new_name` on
the latest table |
| `test_iceberg_schema_time_travel_matrix` | branch reads checked only as
"negative contracts": the old name is unknown, nested types are promoted | a
branch read uses the table's current schema; renamed and re-added fields read
NULL from the branch head (`qt_`, same rows as branch-4.2) |
| `test_iceberg_schema_metadata_atomicity_matrix` | asserts that DESC omits
Iceberg field comments, which only holds because
`show_column_comment_in_describe` is off by default | enables the variable and
asserts that DESC shows the top-level and nested comments |
| `CreateTableCommandTest` | #67545 replaced the "existing CTAS target fails
before any sink is built" case with the configuration preflight case | the
existing-target case is back, next to the preflight case |
**How this PR fixes it.**
- `test_iceberg_schema_dual_relation_matrix` gets the two joins from
branch-4.2, written with `assertEquals` like the rest of the master suite.
- `test_iceberg_schema_time_travel_matrix` keeps master's checks, rewords
their comments, and adds `qt_doris_nested_branch_current_schema` and
`qt_top_branch_current_schema` from branch-4.2, with a new `.out`.
- `test_iceberg_schema_metadata_atomicity_matrix` sets
`show_column_comment_in_describe=true` and asserts that the comments are shown,
as on branch-4.2.
-
`CreateTableCommandTest#existingCtasTargetPrecedesUnsupportedSinkValidation`
comes from branch-4.2. On master the configuration preflight runs first, so the
test stubs it to pass.
**Results.** On a local cluster built from master with the Iceberg docker
environment, the three suites pass. The `.out` is generated by the regression
script and has the same rows as branch-4.2. All 4 cases of
`CreateTableCommandTest` pass, and checkstyle passes.
Original author: @Gabriel39
### Release note
None
### Check List (For Author)
- Test <!-- At least one of them must be included. -->
- [x] Regression test
- [x] Unit Test
- [ ] Manual test (add detailed scripts or steps below)
- [ ] No need to test or manual test. Explain why:
- [ ] This is a refactor/code format and no logic has been changed.
- [ ] Previous test can cover this change.
- [ ] No code files have been changed.
- [ ] Other reason <!-- Add your reason? -->
- Behavior changed:
- [x] No.
- [ ] Yes. <!-- Explain the behavior change -->
- Does this need documentation?
- [x] No.
- [ ] Yes. <!-- Add document PR link here. eg:
https://github.com/apache/doris-website/pull/1214 -->
### Check List (For Reviewer who merge this PR)
- [ ] Confirm the release note
- [ ] Confirm test cases
- [ ] Confirm document
- [ ] Add branch pick label <!-- Add branch pick label that this PR should
merge into -->
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]