SQLite

Check-in [b1005ef46c]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Improved logging of master-journal name conflicts.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: b1005ef46cc2b46dd8e448ae1a9a9508bd5666ab
User & Date: drh 2011-12-16 15:11:39.468
Context
2011-12-16
15:38
Merge the fix for [a1fa75cbdd02] from the experimental branch. Also fix the persistent-wal mode feature of truncating the WAL on close so that it always truncates the WAL to zero bytes. (check-in: 09ccc4a1be user: drh tags: trunk)
15:11
Improved logging of master-journal name conflicts. (check-in: b1005ef46c user: drh tags: trunk)
13:42
Merge the nx-devkit changes into trunk. (check-in: cf3bccc2e9 user: drh tags: trunk)
Changes
Side-by-Side Diff Ignore Whitespace Patch
Changes to src/vdbeaux.c.
1838
1839
1840
1841
1842
1843
1844

1845
1846
1847
1848
1849









1850
1851
1852
1853
1854
1855
1856
1838
1839
1840
1841
1842
1843
1844
1845





1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861







+
-
-
-
-
-
+
+
+
+
+
+
+
+
+








    /* Select a master journal file name */
    nMainFile = sqlite3Strlen30(zMainFile);
    zMaster = sqlite3MPrintf(db, "%s-mjXXXXXX9XX", zMainFile);
    if( zMaster==0 ) return SQLITE_NOMEM;
    do {
      u32 iRandom;
      if( retryCount ){
      if( retryCount++>100 ){
        sqlite3_log(SQLITE_FULL, "cannot find unique master-journal");
        sqlite3OsDelete(pVfs, zMaster, 0);
        break;
      }
        if( retryCount>100 ){
          sqlite3_log(SQLITE_FULL, "MJ delete: %s", zMaster);
          sqlite3OsDelete(pVfs, zMaster, 0);
          break;
        }else if( retryCount==1 ){
          sqlite3_log(SQLITE_FULL, "MJ collide: %s", zMaster);
        }
      }
      retryCount++;
      sqlite3_randomness(sizeof(iRandom), &iRandom);
      sqlite3_snprintf(13, &zMaster[nMainFile], "-mj%06X9%02X",
                               (iRandom>>8)&0xffffff, iRandom&0xff);
      /* The antipenultimate character of the master journal name must
      ** be "9" to avoid name collisions when using 8+3 filenames. */
      assert( zMaster[sqlite3Strlen30(zMaster)-3]=='9' );
      sqlite3FileSuffix3(zMainFile, zMaster);