Fix Python tuple encoding of maximum size 8-byte integers
- Dominant language
- C++
- Stars
- 16.7k
- Forks
- 1.6k
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 126
Description
The Python bindings encode the largest 8-byte integers (`2^64-1` and `-2^64+1`) with the variable-length integer prefix, while other bindings use the fixed length 8-byte integer prefix.
After some [discussion on the forums](https://forums.foundationdb.org/t/request-for-feedback-tuple-encoding-bug/936), it seems the way to implement this is to fix the behavior as of the relevant API version while providing an option to opt-out of the new behavior. That way, users with existing keys that used the previous encoding can continue to work with new API versions.
Contributor guide
Research direction
Start by locating the Python bindings' tuple encoding logic and the handling of API-version compatibility. Compare the largest 8-byte integer encodings with the fixed-length prefix used by other bindings, then review the linked forum discussion for the intended opt-out behavior. Done means new API versions use the corrected encoding while existing keys remain usable through an option.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- databases
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100