Update index & offset encoding

Previously, the index & offsets were encoded as 8-character hex
strings, however, this limits the maximum value to a `uint32`. This
is normally not an issue, however, indices could go over the maximum
value of 4 billion over time and the offset could exceed this value
for an especially large WAL update. For safety, these encodings have
been updated to 16-character hex encodings.
This commit is contained in:
Ben Johnson
2022-02-08 12:49:36 -07:00
parent 54f3b94d3f
commit 006e4b7155
189 changed files with 203 additions and 197 deletions

View File

@@ -7,8 +7,8 @@ To reproduce this testdata, run sqlite3 and execute:
And copy & split the WAL into segments:
sl3 split -o generations/0000000000000000/wal/00000000 db-wal
cp db-wal 00000000.wal
sl3 split -o generations/0000000000000000/wal/0000000000000000 db-wal
cp db-wal 0000000000000000.wal
Then execute:
@@ -18,8 +18,8 @@ Then execute:
And split again:
sl3 split -o generations/0000000000000000/wal/00000001 db-wal
cp db-wal 00000001.wal
sl3 split -o generations/0000000000000000/wal/0000000000000001 db-wal
cp db-wal 0000000000000001.wal
Then execute:
@@ -30,8 +30,8 @@ Then execute:
And split again:
sl3 split -o generations/0000000000000000/wal/00000002 db-wal
cp db-wal 00000002.wal
sl3 split -o generations/0000000000000000/wal/0000000000000002 db-wal
cp db-wal 0000000000000002.wal
Finally, remove the original database files: