]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Add evidence marks associated with autoincrement.
authordrh <drh@noemail.net>
Fri, 1 Jan 2010 18:57:48 +0000 (18:57 +0000)
committerdrh <drh@noemail.net>
Fri, 1 Jan 2010 18:57:48 +0000 (18:57 +0000)
FossilOrigin-Name: 0e918c54893c361fb005295847f89aadcbfae35d

manifest
manifest.uuid
src/resolve.c
src/vdbe.c

index 78197292b2bc6287cb3671510ba6fa0d52bdf880..6cf663c70ed98a871ea1a38db536723421563af2 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,8 +1,8 @@
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1
 
-C Add\scomments\sand\san\sassert()\sto\shelp\sclarify\sthe\soperation\sof\sthe\nsqlite3VdbeList()\sroutine\sused\sto\simplement\sEXPLAIN.
-D 2009-12-31T20:35:08
+C Add\sevidence\smarks\sassociated\swith\sautoincrement.
+D 2010-01-01T18:57:48
 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
 F Makefile.in c5827ead754ab32b9585487177c93bb00b9497b3
 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
@@ -163,7 +163,7 @@ F src/pragma.c 6936d7df5e04b9f996f8f320d15e65b6944b2caa
 F src/prepare.c 170bd953058efe1c46b8ad9020d49cd6f40f0b45
 F src/printf.c 644bc7d59df3dc56d6d8b9a510914bfc6b51bc69
 F src/random.c cd4a67b3953b88019f8cd4ccd81394a8ddfaba50
-F src/resolve.c e8e0866009405b24b81791b8cabc4463fd1d7ebb
+F src/resolve.c 69a45df25039eb58e321653914ad670ffe49d486
 F src/rowset.c 69afa95a97c524ba6faf3805e717b5b7ae85a697
 F src/select.c 0109b993c360d649857523abb72919e1794f9b45
 F src/shell.c b9fae60b0f2ce306c20fa99e83c75023bf35f15b
@@ -212,7 +212,7 @@ F src/update.c c0dc6b75ad28b76b619042d934f337b02acee208
 F src/utf.c dad16adcc0c35ef2437dca125a4b07419d361052
 F src/util.c ad4f03079ba0fe83590d1cc9197e8e4844e38592
 F src/vacuum.c db6415fd0f1be191e16228457a6deb9f232e6ad6
-F src/vdbe.c 5ed06318aac5d57849170a8bf39e807c22c5fedd
+F src/vdbe.c e05765736504d9dbcbb3dfa8964932780002ec39
 F src/vdbe.h bea1f0cd530775bdb58a340265f3cf3ee920e9b2
 F src/vdbeInt.h d7ea821ac7813c9bea0fe87558c35e07b2c7c44d
 F src/vdbeapi.c fc3787eb2f5487d4cc3444de42d56f2e39d311f5
@@ -786,14 +786,14 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
 F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
 F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
-P 97f8a886b6314b044a0522a88f569798fdfb3ef9
-R ec2bfde20add495412a6ede87e046ffd
+P e1ccdb93d79a6f7b16f1f59cc3ad78f8d02eae84
+R e8f64ea35cd805e82f52b2a556e34139
 U drh
-Z 7d63ddb9262e6acf68d6ca4997c73dd9
+Z 394e360eb5d1df957fe55c257efb31a6
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.6 (GNU/Linux)
 
-iD8DBQFLPQr+oxKgR168RlERAvY/AJ9kaCj6kLbG2bTFSo/X9qosbF5uHQCff9FG
-yWtwufLA/m9wpfdsngsfSh4=
-=0KpD
+iD8DBQFLPkWvoxKgR168RlERAtsJAJwKfkre0Bw1zrZ2r7ADRBOPhGeUFwCeKg/n
+1gzLrYYIpH++nnmQeRwJHWU=
+=j3Nq
 -----END PGP SIGNATURE-----
index d40dcfce5ec59a3211b52944e192fcc3a9d6e006..1a374056ef71be520c396c99eba978f4abd812e3 100644 (file)
@@ -1 +1 @@
-e1ccdb93d79a6f7b16f1f59cc3ad78f8d02eae84
\ No newline at end of file
+0e918c54893c361fb005295847f89aadcbfae35d
\ No newline at end of file
index 51f7560a1cf87935a0d82380843ed8fbdc13d5fb..26a6cc03eb34872bbff6013d4cabe8f27f19862d 100644 (file)
@@ -253,7 +253,7 @@ static int lookupName(
           }
         }
         if( iCol>=pTab->nCol && sqlite3IsRowid(zCol) ){
-          iCol = -1;
+          iCol = -1;        /* IMP: R-44911-55124 */
         }
         if( iCol<pTab->nCol ){
           cnt++;
@@ -281,7 +281,7 @@ static int lookupName(
     */
     if( cnt==0 && cntTab==1 && sqlite3IsRowid(zCol) ){
       cnt = 1;
-      pExpr->iColumn = -1;
+      pExpr->iColumn = -1;     /* IMP: R-44911-55124 */
       pExpr->affinity = SQLITE_AFF_INTEGER;
     }
 
index 10401a47a6b9e3044d01704aabb0bc44ee28e5dd..aef20c5926050914bb9e6f9ae9e63abcf890e14e 100644 (file)
@@ -3663,7 +3663,7 @@ case OP_NewRowid: {           /* out2-prerelease */
           goto abort_due_to_error;
         }
         if( res ){
-          v = 1;
+          v = 1;   /* IMP: R-61914-48074 */
         }else{
           assert( sqlite3BtreeCursorIsValid(pC->pCursor) );
           rc = sqlite3BtreeKeySize(pC->pCursor, &v);
@@ -3671,7 +3671,7 @@ case OP_NewRowid: {           /* out2-prerelease */
           if( v==MAX_ROWID ){
             pC->useRandomRowid = 1;
           }else{
-            v++;
+            v++;   /* IMP: R-29538-34987 */
           }
         }
       }
@@ -3695,7 +3695,7 @@ case OP_NewRowid: {           /* out2-prerelease */
         sqlite3VdbeMemIntegerify(pMem);
         assert( (pMem->flags & MEM_Int)!=0 );  /* mem(P3) holds an integer */
         if( pMem->u.i==MAX_ROWID || pC->useRandomRowid ){
-          rc = SQLITE_FULL;
+          rc = SQLITE_FULL;   /* IMP: R-12275-61338 */
           goto abort_due_to_error;
         }
         if( v<pMem->u.i+1 ){
@@ -3708,6 +3708,11 @@ case OP_NewRowid: {           /* out2-prerelease */
       sqlite3BtreeSetCachedRowid(pC->pCursor, v<MAX_ROWID ? v+1 : 0);
     }
     if( pC->useRandomRowid ){
+      /* IMPLEMENTATION-OF: R-48598-02938 If the largest ROWID is equal to the
+      ** largest possible integer (9223372036854775807) then the database
+      ** engine starts picking candidate ROWIDs at random until it finds one
+      ** that is not previously used.
+      */
       assert( pOp->p3==0 );  /* We cannot be in random rowid mode if this is
                              ** an AUTOINCREMENT table. */
       v = db->lastRowid;
@@ -3723,7 +3728,7 @@ case OP_NewRowid: {           /* out2-prerelease */
         cnt++;
       }while( cnt<100 && rc==SQLITE_OK && res==0 );
       if( rc==SQLITE_OK && res==0 ){
-        rc = SQLITE_FULL;
+        rc = SQLITE_FULL;   /* IMP: R-38219-53002 */
         goto abort_due_to_error;
       }
     }