]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Avoid having to reinitialize Vdbe.pResultRow upon each call to sqlite3_step()
authordrh <>
Thu, 22 Dec 2022 19:12:48 +0000 (19:12 +0000)
committerdrh <>
Thu, 22 Dec 2022 19:12:48 +0000 (19:12 +0000)
for a small size reduction and performance increase.

FossilOrigin-Name: 6a00d67f5955ab86eea982c27b3a03b680fdf644ec63f49586ade6342a4d64a6

manifest
manifest.uuid
src/vdbe.c
src/vdbeapi.c
src/vdbeaux.c

index 96d254eae26c377289002609d43ab463e698b1ae..3f59b5e9de041f6e0d4c7feefc2b62c20a1deb69 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Rename\sthe\sVdbe.pResultSet\sfield\sto\spResultRow\sin\sorder\sto\sbetter\sdistinguish\nit\sfrom\sother\svariables\swith\ssimilar\snames.
-D 2022-12-22T18:44:39.948
+C Avoid\shaving\sto\sreinitialize\sVdbe.pResultRow\supon\seach\scall\sto\ssqlite3_step()\nfor\sa\ssmall\ssize\sreduction\sand\sperformance\sincrease.
+D 2022-12-22T19:12:48.752
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -717,11 +717,11 @@ F src/upsert.c 5303dc6c518fa7d4b280ec65170f465c7a70b7ac2b22491598f6d0b4875b3145
 F src/utf.c ee39565f0843775cc2c81135751ddd93eceb91a673ea2c57f61c76f288b041a0
 F src/util.c 313f3154e2b85a447326f5dd15de8d31a4df6ab0c3579bd58f426ff634ec9050
 F src/vacuum.c 84ce7f01f8a7a08748e107a441db83bcec13970190ddcb0c9ff522adbc1c23fd
-F src/vdbe.c 6be002bb5faa47de14fe1dc31082f969ef1814ce48b527d7f24cf315b7339933
+F src/vdbe.c 65097b1b8dc19096a547c0fa54f9e3821e9d513d536654e77c63e85b8f195f1f
 F src/vdbe.h 73b904a6b3bb27f308c6cc287a5751ebc7f1f89456be0ed068a12b92844c6e8c
 F src/vdbeInt.h fc15815b7bdafbb27e7f027faba2b0112e87d382c0d72241672528806ebc0db5
-F src/vdbeapi.c a9ddd91f1907023efd3035642d4bd47cf65effcbeae211d6af4aa2426687e552
-F src/vdbeaux.c f01f4c96c836b9d2c7749ddcef2a779cab3974f478a4034389fd3c59c055749a
+F src/vdbeapi.c 4ee67890913c1d2469c68e3ad2e7ddeab57ac5924a64bbfd0906a8ea0d542c7f
+F src/vdbeaux.c 28d283db3e9e18fef46b2a726173ea57aee18ba3a17c88c763d826f85a7c5b5e
 F src/vdbeblob.c 5e61ce31aca17db8fb60395407457a8c1c7fb471dde405e0cd675974611dcfcd
 F src/vdbemem.c 6cfed43758d57b6e3b99d9cdedfeccd86e45a07e427b22d8487cbdbebb6c522a
 F src/vdbesort.c 43756031ca7430f7aec3ef904824a7883c4ede783e51f280d99b9b65c0796e35
@@ -2067,8 +2067,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 3181331c1c0259d5cd274dcb33faba930dae51b1f0fe51e8a0318d9c564b94f9
-R 9394973e55c6ccfeb1c979e40b4ba15e
+P 1fd6211ef7bd26ed625177bfedfd5153ace547de6a71365ecfa076578d043f1a
+R d29f6177fe6e6d525f82d4157aa1b700
 U drh
-Z 82b58542dbd948888420949bdd4642ed
+Z 0157da8e1ea08955e8449bebbef403a0
 # Remove this line to create a well-formed Fossil manifest.
index 8db7649c838496c321f48918683182e079b682d4..a60a31ccf166124f33e1b337d3bc43a5b6f140f3 100644 (file)
@@ -1 +1 @@
-1fd6211ef7bd26ed625177bfedfd5153ace547de6a71365ecfa076578d043f1a
\ No newline at end of file
+6a00d67f5955ab86eea982c27b3a03b680fdf644ec63f49586ade6342a4d64a6
\ No newline at end of file
index 1ed7216d1db530b39a7342d1cbb623e4dd7a7943..caaf2f429cd723678754173cabf1c6ca0bd9dc24 100644 (file)
@@ -755,7 +755,6 @@ int sqlite3VdbeExec(
   assert( p->bIsReader || p->readOnly!=0 );
   p->iCurrentTime = 0;
   assert( p->explain==0 );
-  p->pResultRow = 0;
   db->busyHandler.nBusy = 0;
   if( AtomicLoad(&db->u1.isInterrupted) ) goto abort_due_to_interrupt;
   sqlite3VdbeIOTraceSql(p);
index 34727c30ed0d950cbc5bd61453c4155288213c45..e080449c5eb7ea98b88322033d4808dd01534a43 100644 (file)
@@ -753,7 +753,7 @@ static int sqlite3Step(Vdbe *p){
     /* If the statement completed successfully, invoke the profile callback */
     checkProfileCallback(db, p);
 #endif
-
+    p->pResultRow = 0;
     if( rc==SQLITE_DONE && db->autoCommit ){
       assert( p->rc==SQLITE_OK );
       p->rc = doWalCallbacks(db);
index bcd67020e86df37fb358a0be81b6ff5135f8a117..4ce2e9ec9e1e6f867007d4edc4e4bc543b260504 100644 (file)
@@ -2316,7 +2316,6 @@ int sqlite3VdbeList(
   ** sqlite3_column_text16(), causing a translation to UTF-16 encoding.
   */
   releaseMemArray(pMem, 8);
-  p->pResultRow = 0;
 
   if( p->rc==SQLITE_NOMEM ){
     /* This happens if a malloc() inside a call to sqlite3_column_text() or