apple / apple/foundationdb

Fix Python tuple encoding of maximum size 8-byte integers

Open
#1,296 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.