testfixture: no -wal/-shm/-journal sidecars; journal_mode is not configurable

Open Beginner friendly
#1,836 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
70/100
Issue type
Documentation
Clarity
Mostly clear
Activity status
Quiet
Tech stack
c, sqlite

Research direction

Start with test/known_testfixture_exception_inventory.txt and inspect the 43 listed suite entries, especially walbig's recorded reason. Update unsupported entries that still point to closed issue #1208 so they reference this live limitation description, and reassess walbig separately; done means the inventory accurately records each disposition and rationale.

Written by the indexing model from the issue text.

Description

test/known_testfixture_exception_inventory.txt marks 43 inherited SQLite
testfixture suites unsupported because DoltLite has no rollback-journal or
WAL sidecar files. The chunk store keeps its own WAL inside the single
database file, so -wal, -shm and -journal never exist, and
PRAGMA journal_mode=<x> reports "journal_mode is not configurable on
doltlite-format databases".

Everything downstream of that diverges or aborts:

  • tests that copy or stat test.db-wal / test.db-shm (wal, wal2, wal3,
    walcksum, waloverwrite, walslow, walvfs, walro2, e_walauto, ...)
  • tests that open a second connection needing the -shm sidecar, which then
    aborts the file with invalid command name db2 (wal6, walnoshm)
  • checkpoint API contracts over a store with no sidecar (e_walckpt,
    walckptnoop, nockpt, walrestart)
  • shm locking and shm-fault injection (shmlock, walsetlk,
    walsetlk_recover, walro, dbpagefault, walfault)
  • journal-mode switching and journal-size probes (jrnlmode, jrnlmode2,
    jrnlmode3, journal1, journal2, journal3, walmode, walpersist)

This is a consequence of replacing the pager, not a bug list, and it is not
expected to be fixed. The issue exists so the inventory's unsupported entries
point at a live description of the limitation: the entries previously pointed at
#1208, which was the triage process tracker and is closed.

Affected suites (43): dbpagefault e_wal e_walauto e_walckpt e_walhook journal1
journal2 journal3 jrnlmode jrnlmode2 jrnlmode3 nockpt shmlock wal wal2 wal3
wal4 wal5 wal6 wal64k wal7 wal9 walbak walbig walckptnoop walcksum walfault
walhook walmode walnoshm waloverwrite walpersist walprotocol walprotocol2
walrestart walro walro2 walseh1 walsetlk walsetlk_recover walshared walslow
walvfs

Note: walbig's recorded reason is ORDER BY rowid over a PK-clustered table
("no such column: rowid"), which is the rowid-keying divergence rather than
anything WAL-related. Its disposition deserves a second look.

Dominant language
C
Stars
274
Forks
20
Avg merge
2h 35m
Merged PRs (30d)
454

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from dolthub/doltlite

All issues in dolthub/doltlite

Similar issues

More C issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.