924060929 opened a new pull request, #68575:
URL: https://github.com/apache/doris/pull/68575
### What problem does this PR solve?
Issue Number: None
Related PR: None
Problem Summary: Two Hive partition tables can legitimately share a
partition location. On branch-4.1, the partition file-list cache key uses the
catalog, location, and partition values, but omits the table ID. In contrast,
`REFRESH TABLE` invalidates file-list entries by table ID. If table a loads the
old listing, table b can hit that entry after writing a new file and refreshing
b, so its scan omits the new file and returns incomplete results. Include the
table ID in the cache key's equality and hash code. Each table then owns the
listings that its refresh invalidates.
The new FE unit test uses the same catalog, location, format, and partition
value for a and b. It failed on the original code because b retrieved a's
cached value. After the change, b misses a's value, both entries coexist, and
refreshing b removes only b's entry.
### Release note
Fix missing rows after refreshing a Hive table that shares a partition
location with another table.
### Check List (For Author)
- Test
- [ ] Regression test
- [x] Unit Test: `HiveMetaStoreCacheTest` (13 tests passed; new case
failed before the fix)
- [ ] Manual test
- [ ] No need to test or manual test
- FE Checkstyle: 0 violations.
- Local `./build.sh --fe` was not completed because this isolated worktree
lacked the complete thirdparty installation; `run buildall` is requested on
this PR.
- Behavior changed:
- [ ] No.
- [x] Yes. `REFRESH TABLE` reloads the current Hive table's file listing
even when another table shares its partition location.
- Does this need documentation?
- [x] No.
- [ ] Yes.
### Check List (For Reviewer who merge this PR)
- [ ] Confirm the release note
- [ ] Confirm test cases
- [ ] Confirm document
- [ ] Add branch pick label
--
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]