3f0ec9fa9f
This commit refactors out the complexity of downloading ordered WAL files in parallel to a type called `WALDownloader`. This makes it easier to test the restore separately from the download.
To reproduce this testdata, run sqlite3 and execute: PRAGMA journal_mode = WAL; CREATE TABLE t (x); INSERT INTO t (x) VALUES (1); INSERT INTO t (x) VALUES (2); sl3 split -o generations/0000000000000000/wal/00000000 db-wal cp db generations/0000000000000000/snapshots/00000000.snapshot lz4 -c --rm generations/0000000000000000/snapshots/00000000.snapshot Then execute: PRAGMA wal_checkpoint(TRUNCATE); INSERT INTO t (x) VALUES (3); sl3 split -o generations/0000000000000000/wal/00000001 db-wal Then execute: PRAGMA wal_checkpoint(TRUNCATE); INSERT INTO t (x) VALUES (4); INSERT INTO t (x) VALUES (5); sl3 split -o generations/0000000000000000/wal/00000002 db-wal Finally, obtain the final snapshot: PRAGMA wal_checkpoint(TRUNCATE); cp db 00000002.db rm db*