Add a flag for table access method to force exclusive write
This commit adds a flag in table access method to force exclusive write. The feature allows writing of a table, i.e. insert/delete/ update, to be not concurrently safe.
What does this PR do?
Type of Change
- [ ] Bug fix (non-breaking change)
- [ ] New feature (non-breaking change)
- [ ] Breaking change (fix or feature with breaking changes)
- [ ] Documentation update
Breaking Changes
Test Plan
- [ ] Unit tests added/updated
- [ ] Integration tests added/updated
- [ ] Passed
make installcheck - [ ] Passed
make -C src/test installcheck-cbdb-parallel
Impact
Performance:
User-facing changes:
Dependencies:
Checklist
- [ ] Followed contribution guide
- [ ] Added/updated documentation
- [ ] Reviewed code for security implications
- [ ] Requested review from cloudberry committers
Additional Context
CI Skip Instructions
what's scenario need ?
what's scenario need ?
Concurrently INSERT/DELETE/UPDATE tuples in a table is considered safe in heap/AO/CO. But it's not always true. For some implementations, concurrently write that is unsafe requires to hold a big lock for exclusive write.
The PR is mandatory if pax_storage uses manifest file, i.e. USE_MANIFEST_API=ON USE_PAX_CATALOG=OFF, or concurrent write will corrupt the internal metadata of pax tables.