You are most welcome. A small warning: ```sh warning: assigning to 'char *' from 'const char *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers] pRet->zWalName2 = &zWalName[sqlite3Strlen30(zWalName)+1]; ``` If I create a new database, the sqlite will try access journal first, then create journal file. After I set journal_mode = WAL2, sqlite delete + journal and create 2 WAL file. Is there a way to let sqlite skip create journal file when I intend to use WAL ? (a flags pass to sqlite3_open_v2 to avoid call "pargama journal_mode = WAL" late) The is VFS only SQLITE_OPEN_WAL, maybe reuse it to do the work(only for create new database).