Details
-
Bug
-
Resolution: Fixed
-
Blocker
-
None
-
Security Level: Public
-
Release Note
Description
couch_common.h declares the field DocInfo.rev_seq as type uint64_t. However, the database only persists it as a 32-bit value (see assemble_seq_index_value, couch_save.c:19). This means that clients trying to set values larger than 2^32-1 will find the upper 32 bits truncated when they read the document.
The field should be changed to type uint32_t. This could cause warnings in client code if it's assigning a 64-bit value to it, but I don't believe any of our code uses this field at all, currently
Attachments
For Gerrit Dashboard: MB-6945 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
22098,3 | MB-6945: Increase size of rev seq from 32 bits to 48 bits | master | couchdb | Status: MERGED | +2 | +1 |
22099,4 | MB-6945 Increase rev_seq width to 48 bits | indexer | couchstore | Status: ABANDONED | +2 | 0 |
22103,3 | MB-6945 Backport file format refactor from indexer | master | couchstore | Status: MERGED | +2 | +1 |
22104,4 | MB-6945 Increase rev_seq width to 48 bits | master | couchstore | Status: MERGED | +2 | +1 |