-
Type:
New Feature
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: Query Execution
-
None
-
Query Execution
-
Fully Compatible
-
QE 2026-04-27, QE 2026-04-13
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Add a check in write_ops_exec::performUpdate() to reject updates on cold collections.
This single interception point blocks all update operations identified in the decision doc:
- `update`,
- `updateOne`,
- `updateMany`,
- `replaceOne`,
- `findAndModify` (update mode),
- `findOneAndUpdate`,
- `findOneAndReplace`,
- `bulkWrite` (update ops),
- `$merge`
Pseudo code in performUpdate() (write_ops_exec.cpp):
if (!remove && collection.exists() && collection.getCollectionPtr()->getRecordStore()->isColdCollection()) { uasserted(ErrorCodes::IllegalOperation, str::stream() << "Updates are not supported on cold collection '" << collection.nss().toStringForErrorMsg() << "'"); }
Verify `findAndModify` with `remove: true` is NOT blocked (the `remove` parameter in `performUpdate()` distinguishes this case – the cold check should only apply when `!remove`).
- causes
-
SERVER-123796 Resolve CurOp-related TODOs in write_ops_exec.cpp
-
- Backlog
-
- depends on
-
SERVER-122578 Add isColdCollection() accessor to WT RecordStore
-
- Closed
-