hey, I just tested and `NORMAL` is default:
$ sqlite3 test.db
SQLite version 3.43.2 2023-10-10 13:08:14
Enter ".help" for usage hints.
sqlite> PRAGMA journal_mode=wal;
wal
sqlite> PRAGMA synchronous;
1
sqlite>
edit: fresh installation from homebrew shows default as FULL: /opt/homebrew/opt/sqlite/bin/sqlite3 test.db
SQLite version 3.50.4 2025-07-30 19:33:53
Enter ".help" for usage hints.
sqlite> PRAGMA journal_mode=wal;
wal
sqlite> PRAGMA synchronous;
2
sqlite>
I will update the post, thanks!
Just checked debian/ubuntu/alpine/fedora/arch docker images. All are FULL by default.
Is this sqlite built from source or a distro sqlite? It's possible the defaults differ with build settings.
The one which avinassh shows is MacOS's SQLite under /usr/bin/sqlite3. In general it also has some other weird settings, like not having concat() method, last I checked.
The Apple built macOS SQLite is something.
Another oddity: misteriously reserving 12 bytes per page for whatever reason, making databases created with it forever incompatible with the checksum VFS.
Other: having 3 different layers of fsync to avoid actually doing any F_FULLFSYNC ever, even when you ask it for a fullfsync (read up on F_BARRIERFSYNC).
> it also has some other weird settings
You also can't load extensions with `.load` (presumably security but a pain in the arse.)
Same with macports here - 2 (opt/local/bin/sqlite3)
and /usr/bin/sqlite3 is 1