mirror of
https://github.com/sqlite/sqlite.git
synced 2026-10-23 21:49:02 +03:00
Avoid ever repreparing a statement if a call to sqlite3_bind_int64() does not actually change the bound value.
FossilOrigin-Name: 4708cfe5f7fe1874870564956f0f81ba79226657c6d07ea1edffba7d5a6e4e3b
This commit is contained in:
14
manifest
14
manifest
@@ -1,5 +1,5 @@
|
||||
C Add\stest\scase\sfor\s[bugs:/info/2026-10-11T16:09:34Z\s|\s2026-10-11T16:09:34Z].\sBug\swas\salready\sfixed\sby\s[7f154192db].
|
||||
D 2026-10-12T13:44:50.244
|
||||
C Avoid\sever\srepreparing\sa\sstatement\sif\sa\scall\sto\ssqlite3_bind_int64()\sdoes\snot\sactually\schange\sthe\sbound\svalue.
|
||||
D 2026-10-12T14:05:08.235
|
||||
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
|
||||
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
|
||||
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
|
||||
@@ -871,7 +871,7 @@ F src/vacuum.c d3d35d8ae893d419ade5fa196d761a83bddcbb62137a1a157ae751ef38b26e82
|
||||
F src/vdbe.c 2954169319fef68d5119e9855637e7a44dc64f34ee474d68001a05c03072cb48
|
||||
F src/vdbe.h b6ffb28da04363fd5d439b8204118fd3f2e751abe4f8e3edb089155fb90d4607
|
||||
F src/vdbeInt.h 68e5ab63f184f2871780c83ce78b425d0360869611baea4c65575f91f76ac1d3
|
||||
F src/vdbeapi.c 5929b6010966f1f8f5be8605323cfa004b8f68cfa056735f8f283d85fae81391
|
||||
F src/vdbeapi.c 4f7ad184ca2cd3770c5da3ce707f348965f9a2677acc25dcc256237ccdd0b99f
|
||||
F src/vdbeaux.c 27d92528e7953a80f64782ef75e65a6694277214082e87d125e74e52d9e7ecd5
|
||||
F src/vdbeblob.c b3f0640db9642fbdc88bd6ebcc83d6009514cafc98f062f675f2c8d505d82692
|
||||
F src/vdbemem.c b2113c949e2ed918294e16a5ebaacdaca6be4f820f670517e3362e94c7019432
|
||||
@@ -1622,7 +1622,7 @@ F test/regexp1.sql a57e8d2777c7d62142bc802a7f18791ed5f17561ce6a1ca6ff287ba1a8c87
|
||||
F test/regexp1.test 0023eae4073265641b826a70d81ba34d4dd66ad71871a5b4a1b7cf500d5c0c51
|
||||
F test/regexp2.test 64f9726b2ddc71aea06725fcad53231833d038d58b936d49083ace658b370a13
|
||||
F test/reindex.test cd9d6021729910ece82267b4f5e1b5ac2911a7566c43b43c176a6a4732e2118d
|
||||
F test/reprepare.test c8e4c5e8ba41849c73a03e006b9e6a38c9a86002300fb07f7a806d8b73b1e0e3
|
||||
F test/reprepare.test 44106ed3509dac4ad81f70bbad97aaf32e4c8d92761133f3a51883f324b150be
|
||||
F test/reservebytes.test 6163640b5a5120c0dee6591481e673a0fa0bf0d12d4da7513bad692c1a49a162
|
||||
F test/resetdb.test 54c06f18bc832ac6d6319e5ab23d5c8dd49fdbeec7c696d791682a8006bd5fc3
|
||||
F test/resolver01.test f4022acafda7f4d40eca94dbf16bc5fc4ac30ceb
|
||||
@@ -2284,8 +2284,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee
|
||||
F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2
|
||||
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
|
||||
F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
|
||||
P 7f154192db5a3a79f4666edd31dfc29fd73904ccd3630952e3b032e49fee6455
|
||||
R 33c8c740bf911a86fd5b8557c1ba1cab
|
||||
P 085dca9d30e5ce500e22374573b553f6bcd934549bc5b25305b0b97d6b37a104
|
||||
R eb4b1159f59ceaf74db08801163c192e
|
||||
U dan
|
||||
Z 9e68ec7f4733a7d310b8587dda072ab5
|
||||
Z 8a563abeff3722e462d3eade902cf9a5
|
||||
# Remove this line to create a well-formed Fossil manifest.
|
||||
|
||||
@@ -1 +1 @@
|
||||
085dca9d30e5ce500e22374573b553f6bcd934549bc5b25305b0b97d6b37a104
|
||||
4708cfe5f7fe1874870564956f0f81ba79226657c6d07ea1edffba7d5a6e4e3b
|
||||
|
||||
@@ -1892,7 +1892,7 @@ int sqlite3_bind_int64(sqlite3_stmt *pStmt, int i, sqlite_int64 iValue){
|
||||
if( sm1!=sm2 ){
|
||||
p->expired = 1;
|
||||
}
|
||||
}else{
|
||||
}else if( (pVar->flags & MEM_Int)==0 || iValue!=pVar->u.i ){
|
||||
/* Always expire if the smimask bit is clear */
|
||||
p->expired = 1;
|
||||
}
|
||||
|
||||
@@ -85,6 +85,16 @@ do_reprepare_test 1.3 {
|
||||
{ sqlite3_bind_int64 $stmt 1 2 } 1
|
||||
}
|
||||
|
||||
do_reprepare_test 1.4 {
|
||||
SELECT * FROM t1 LIMIT ?1
|
||||
} {
|
||||
{ sqlite3_bind_int64 $stmt 1 12 } 1
|
||||
{ sqlite3_bind_int64 $stmt 1 12 } 0
|
||||
{ sqlite3_bind_int64 $stmt 1 13 } 1
|
||||
{ sqlite3_bind_int64 $stmt 1 13 } 0
|
||||
{ sqlite3_bind_int64 $stmt 1 14 } 1
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
# Test that if a variable is used both in a context where only a change
|
||||
# to or from a small integer requires a reprepare (an equality comparison)
|
||||
|
||||
Reference in New Issue
Block a user