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]

Reply via email to