Fix things so that sqlite3_database_file_object() works with wal2 filenames.

FossilOrigin-Name: c2426ae8a80d61e1ede2d065c10145ba31d4ac615803f48b7903f5f7daaa6f89
This commit is contained in:
dan
2020-11-19 16:08:08 +00:00
parent 174f4fa241
commit 9bf3da81a0
4 changed files with 13 additions and 16 deletions
+7 -7
View File
@@ -1,5 +1,5 @@
C Merge\slatest\strunk\schanges\sinto\sthis\sbranch.
D 2020-08-11T11:34:00.038
C Fix\sthings\sso\sthat\ssqlite3_database_file_object()\sworks\swith\swal2\sfilenames.
D 2020-11-19T16:08:08.155
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -524,7 +524,7 @@ F src/os_setup.h 0dbaea40a7d36bf311613d31342e0b99e2536586
F src/os_unix.c 9b1b860163fd2d4d7679b5260d384d1a9f88ef917a90f28963eca8acd472d8c8
F src/os_win.c a2149ff0a85c1c3f9cc102a46c673ce87e992396ba3411bfb53db66813b32f1d
F src/os_win.h 7b073010f1451abe501be30d12f6bc599824944a
F src/pager.c 35fcb2d9400404d0d8f719461b411076bcd5597574b7a238f3a04f959842a88d
F src/pager.c aafa89d881c1d56b2dc212f99a6527ca3d4f7105a01e755871657981fc411005
F src/pager.h 9d38ac4b9f0e1361f7ddb6aa0675a54f5e4f085703108d3aafe7868872113f92
F src/parse.y 5bdb760a29c0b25caf7e80e82210b81cd2ea3066d5199ca29e6eac40b34bc184
F src/pcache.c 385ff064bca69789d199a98e2169445dc16e4291fa807babd61d4890c3b34177
@@ -621,7 +621,7 @@ F src/vdbetrace.c fa3bf238002f0bbbdfb66cc8afb0cea284ff9f148d6439bc1f6f2b4c3b7143
F src/vdbevtab.c f99b275366c5fc5e2d99f734729880994ab9500bdafde7fae3b02d562b9d323c
F src/vtab.c 5f5fc793092f53bbdfde296c50f563fb7bda58cf48e9cf6a8bdfbc5abd409845
F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9
F src/wal.c dafdd709d1e01f77719a983f5b3071ccd82808d59a044f8ce48cd0bfa1c1fea5
F src/wal.c 055328936bf2519e235adcb65b3e8d416f0835ac81d577d08fd34cd29432af88
F src/wal.h d01234e828943e002040c22a7e017642962f9fd9b2dc142fa599769ae4e459e9
F src/walker.c 3df26a33dc4f54e8771600fb7fdebe1ece0896c2ad68c30ab40b017aa4395049
F src/where.c 2ea911238674e9baaeddf105dddabed92692a01996073c4d4983f9a7efe481f9
@@ -1891,7 +1891,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
P 0c0d0a77bc8fa68ee584ca6d7a0408dcd00734a9b6b69d127ee8477c230a749c 5bbd4bddd3b9fa64d134ed62bce3eb4a09456bf24dec2474b5d764a3a3775964
R 19eea2388f833c601e8554bc39b427c6
P 91262e665755a1430f3b667867b9c4fa0cc3aa0388c21e8ba436485beefa9f4a
R 526f45cc6b30de9a0c02f320de6299a2
U dan
Z e3452c6286d56d7ce7f02a59585758e0
Z 12962dd7c3e8bd2cbe9af67559b28702
+1 -1
View File
@@ -1 +1 @@
91262e665755a1430f3b667867b9c4fa0cc3aa0388c21e8ba436485beefa9f4a
c2426ae8a80d61e1ede2d065c10145ba31d4ac615803f48b7903f5f7daaa6f89
+3
View File
@@ -4782,6 +4782,7 @@ int sqlite3PagerOpen(
nPathname + 8 + 1 + /* Journal filename */
#ifndef SQLITE_OMIT_WAL
nPathname + 4 + 1 + /* WAL filename */
nPathname + 5 + 1 + /* Second WAL filename */
#endif
3 /* Terminator */
);
@@ -4834,6 +4835,8 @@ int sqlite3PagerOpen(
sqlite3FileSuffix3(zFilename, pPager->zWal);
pPtr = (u8*)(pPager->zWal + sqlite3Strlen30(pPager->zWal)+1);
#endif
memcpy(pPtr, zPathname, nPathname); pPtr += nPathname;
memcpy(pPtr, "-wal2", 5); pPtr += 5 + 1;
}else{
pPager->zWal = 0;
}
+2 -8
View File
@@ -1887,7 +1887,6 @@ int sqlite3WalOpen(
int rc; /* Return Code */
Wal *pRet; /* Object to allocate and return */
int flags; /* Flags passed to OsOpen() */
int nWalName; /* Length of zWalName in bytes */
int nByte; /* Bytes of space to allocate */
assert( zWalName && zWalName[0] );
@@ -1908,8 +1907,7 @@ int sqlite3WalOpen(
assert( UNIX_SHM_BASE==WALINDEX_LOCK_OFFSET );
#endif
nWalName = sqlite3Strlen30(zWalName);
nByte = sizeof(Wal) + pVfs->szOsFile*2 + nWalName+2;
nByte = sizeof(Wal) + pVfs->szOsFile*2;
/* Allocate an instance of struct Wal to return. */
*ppWal = 0;
@@ -1929,11 +1927,7 @@ int sqlite3WalOpen(
pRet->padToSectorBoundary = 1;
pRet->exclusiveMode = (bNoShm ? WAL_HEAPMEMORY_MODE: WAL_NORMAL_MODE);
pRet->bWal2 = bWal2;
pRet->zWalName2 = (char*)pRet + sizeof(Wal) + 2*pVfs->szOsFile;
memcpy(pRet->zWalName2, zWalName, nWalName);
pRet->zWalName2[nWalName] = '2';
pRet->zWalName2[nWalName+1] = '\0';
pRet->zWalName2 = &zWalName[sqlite3Strlen30(zWalName)+1];
/* Open a file handle on the first write-ahead log file. */
flags = (SQLITE_OPEN_READWRITE|SQLITE_OPEN_CREATE|SQLITE_OPEN_WAL);