]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Shift more OP_Found opcodes over to using the unpacked format, for improved
authordrh <drh@noemail.net>
Thu, 12 Nov 2009 20:39:03 +0000 (20:39 +0000)
committerdrh <drh@noemail.net>
Thu, 12 Nov 2009 20:39:03 +0000 (20:39 +0000)
performance.

FossilOrigin-Name: 6705ab1ad12cbdbbcf1f3e5439a4e6cbdcc421b3

manifest
manifest.uuid
src/pragma.c
src/select.c

index 6be104b524ce00f7cd203a3df5c4869b4024d55e..a74ddf079bf777286fff928074103dc4cd0355dc 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,8 +1,8 @@
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1
 
-C Enhance\sthe\sOP_Found\sand\sOP_NotFound\sopcodes\sso\sthat\sthey\scan\saccept\san\narray\sof\sregisters\sas\san\sunpacked\srecord\sin\saddition\sto\sa\srecord\sbuilt\nusing\sOP_MakeRecord.\s\sUse\sthis\sto\savoid\sOP_MakeRecord\scalls\sduring\sIN\nexpression\sprocessing.
-D 2009-11-12T19:59:44
+C Shift\smore\sOP_Found\sopcodes\sover\sto\susing\sthe\sunpacked\sformat,\sfor\simproved\nperformance.
+D 2009-11-12T20:39:03
 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
 F Makefile.in 53f3dfa49f28ab5b80cb083fb7c9051e596bcfa1
 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
@@ -157,13 +157,13 @@ F src/parse.y f785d814562a14dc19202f61abb4372845f64752
 F src/pcache.c 3b079306376e0e04c0d3df40c0a4b750a1839310
 F src/pcache.h c683390d50f856d4cd8e24342ae62027d1bb6050
 F src/pcache1.c db4a996e456eec2380732a1036e23e3f551f6573
-F src/pragma.c 0057a8838eec9ac78ed759687fe30e45622fd58b
+F src/pragma.c 6936d7df5e04b9f996f8f320d15e65b6944b2caa
 F src/prepare.c ad90970bba3aead154266d8bb6faf9fbb5233b94
 F src/printf.c 03fabdd6112a0e23f78f8ac9a1396947ade0273b
 F src/random.c cd4a67b3953b88019f8cd4ccd81394a8ddfaba50
 F src/resolve.c aa3cb21e1ecd905c071fce8fb64d1a166cefc239
 F src/rowset.c 69afa95a97c524ba6faf3805e717b5b7ae85a697
-F src/select.c 55051bfa85dc23079a333230a368e0bce4a78cf8
+F src/select.c a727f61f3267bfa20ce1c3e85d38dc2132db1060
 F src/shell.c f4948cb6d30665d755a6b5e0ec313d1094aab828
 F src/sqlite.h.in 4464e9772122f0447305d425e04d122b6f1bffec
 F src/sqlite3ext.h 69dfb8116af51b84a029cddb3b35062354270c89
@@ -771,14 +771,14 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
 F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
 F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
-P fcff5b7e2d059ffb8d21df57d0c9648bd876e813
-R 289cc41bc3e406dfdc738b417fc25b8c
+P b9eab885cd2ca1a1633329e7036c125e8dba62c5
+R bfa1e6d0d13eb6efded0b2eed08f59ea
 U drh
-Z 968caa638a1107429c124a260631802c
+Z d7c2b8cfb0a9b4cbaabc9813a91bb3c2
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.6 (GNU/Linux)
 
-iD8DBQFK/GkzoxKgR168RlERAl33AJ9QBMxhsMt2M9vYW0zsZxtSjE5sMACfUjh4
-j4sLHQ3TmHMP7T2ltUWwkRc=
-=u7bi
+iD8DBQFK/HJqoxKgR168RlERAviFAJ9aMaBxiz20SHBh7VnDB+/x4A0hUQCfQ7jk
+jfzZx12yW5yQrNg8aanD/xQ=
+=snJx
 -----END PGP SIGNATURE-----
index 036e1f3f50507643d508c32d436e9d2678284d97..4c3291e8034eae29402327129540088af59bbfd1 100644 (file)
@@ -1 +1 @@
-b9eab885cd2ca1a1633329e7036c125e8dba62c5
\ No newline at end of file
+6705ab1ad12cbdbbcf1f3e5439a4e6cbdcc421b3
\ No newline at end of file
index 69dea4edb0677e7d9227181f9c13e08c006bd449..0afce9706db0ab31ac42a658f6f3e2e65cc136a3 100644 (file)
@@ -1128,6 +1128,7 @@ void sqlite3Pragma(
         sqlite3VdbeAddOp2(v, OP_AddImm, 2, 1);   /* increment entry count */
         for(j=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, j++){
           int jmp2;
+          int r1;
           static const VdbeOpList idxErr[] = {
             { OP_AddImm,      1, -1,  0},
             { OP_String8,     0,  3,  0},    /* 1 */
@@ -1141,8 +1142,8 @@ void sqlite3Pragma(
             { OP_IfPos,       1,  0,  0},    /* 9 */
             { OP_Halt,        0,  0,  0},
           };
-          sqlite3GenerateIndexKey(pParse, pIdx, 1, 3, 1);
-          jmp2 = sqlite3VdbeAddOp4Int(v, OP_Found, j+2, 0, 3, 0);
+          r1 = sqlite3GenerateIndexKey(pParse, pIdx, 1, 3, 0);
+          jmp2 = sqlite3VdbeAddOp4Int(v, OP_Found, j+2, 0, r1, pIdx->nColumn+1);
           addr = sqlite3VdbeAddOpList(v, ArraySize(idxErr), idxErr);
           sqlite3VdbeChangeP4(v, addr+1, "rowid ", P4_STATIC);
           sqlite3VdbeChangeP4(v, addr+3, " missing from index ", P4_STATIC);
index 80a04f40e6cf0fc7483d411393bc4b5abc9a0cee..d6b7c0bdb9b9b6ad8db4fc2bc4af80de9f1d6810 100644 (file)
@@ -439,8 +439,8 @@ static void codeDistinct(
 
   v = pParse->pVdbe;
   r1 = sqlite3GetTempReg(pParse);
+  sqlite3VdbeAddOp4Int(v, OP_Found, iTab, addrRepeat, iMem, N);
   sqlite3VdbeAddOp3(v, OP_MakeRecord, iMem, N, r1);
-  sqlite3VdbeAddOp4Int(v, OP_Found, iTab, addrRepeat, r1, 0);
   sqlite3VdbeAddOp2(v, OP_IdxInsert, iTab, r1);
   sqlite3ReleaseTempReg(pParse, r1);
 }