Shift more OP_Found opcodes over to using the unpacked format, for improved

performance.

FossilOrigin-Name: 6705ab1ad12cbdbbcf1f3e5439a4e6cbdcc421b3
This commit is contained in:
drh 2009-11-12 20:39:03 +00:00
parent 8cff69df11
commit 91fc4a0c4d
4 changed files with 15 additions and 14 deletions

View File

@ -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-----

View File

@ -1 +1 @@
b9eab885cd2ca1a1633329e7036c125e8dba62c5
6705ab1ad12cbdbbcf1f3e5439a4e6cbdcc421b3

View 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);

View 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);
}