1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-07-30 19:03:16 +03:00

Improved detection of run-time errors (ex: OOM errors) in speedtest1.

FossilOrigin-Name: 0e5e0e2f558a417d57c01a2d62cb2117d2adf6ddbc62e6a0208ae23f19b05347
This commit is contained in:
drh
2025-04-10 19:54:56 +00:00
parent f95e964b6b
commit a863bafba7
3 changed files with 24 additions and 19 deletions

View File

@ -1,5 +1,5 @@
C Provide\snew\scommand-line\soptions\s--hard-heap-limit\sand\s--soft-heap-limit\nfor\sspeedtest1. C Improved\sdetection\sof\srun-time\serrors\s(ex:\sOOM\serrors)\sin\sspeedtest1.
D 2025-04-10T19:39:34.328 D 2025-04-10T19:54:56.037
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@ -1687,7 +1687,7 @@ F test/speed4p.explain 6b5f104ebeb34a038b2f714150f51d01143e59aa
F test/speed4p.test 377a0c48e5a92e0b11c1c5ebb1bc9d83a7312c922bc0cb05970ef5d6a96d1f0c F test/speed4p.test 377a0c48e5a92e0b11c1c5ebb1bc9d83a7312c922bc0cb05970ef5d6a96d1f0c
F test/speedtest.md ee958457ae1b729d9715ae33c0320600000bf1d9ddea1a88dcf79f56729d6fad F test/speedtest.md ee958457ae1b729d9715ae33c0320600000bf1d9ddea1a88dcf79f56729d6fad
F test/speedtest.tcl 926d1e168f4a14e6fb68c5dc174de743536b547f365264bd5bac533b3621a4a0 x F test/speedtest.tcl 926d1e168f4a14e6fb68c5dc174de743536b547f365264bd5bac533b3621a4a0 x
F test/speedtest1.c b6823a37a46d742a087f68495d63fc28d3b1a4fc6416a3366e0c67d01f19d105 F test/speedtest1.c 64b8804b053a796eab22f8b23fb181000f05d7b3e2aa44f022117ea543bc5a2a
F test/spellfix.test 951a6405d49d1a23d6b78027d3877b4a33eeb8221dcab5704b499755bb4f552e F test/spellfix.test 951a6405d49d1a23d6b78027d3877b4a33eeb8221dcab5704b499755bb4f552e
F test/spellfix2.test dfc8f519a3fc204cb2dfa8b4f29821ae90f6f8c3 F test/spellfix2.test dfc8f519a3fc204cb2dfa8b4f29821ae90f6f8c3
F test/spellfix3.test 0f9efaaa502a0e0a09848028518a6fb096c8ad33 F test/spellfix3.test 0f9efaaa502a0e0a09848028518a6fb096c8ad33
@ -2216,8 +2216,8 @@ F tool/version-info.c 3b36468a90faf1bbd59c65fd0eb66522d9f941eedd364fabccd7227350
F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7 F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
F tool/warnings.sh 49a486c5069de041aedcbde4de178293e0463ae9918ecad7539eedf0ec77a139 F tool/warnings.sh 49a486c5069de041aedcbde4de178293e0463ae9918ecad7539eedf0ec77a139
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
P 8c8b1a99bc888a5db637900aa3c8ef1b8c748c527580c825a25df1008afcf9e0 P 578e9fedeaaacd152ae1988920e6c9a0c43f664e2f9461c0994ba427ae1688e7
R 6387413ea82c4eeeabb5cf2294064ac0 R ba4a44d30114309e9b2a1e00908db202
U drh U drh
Z b94f061884cf2cdb326ad331d6bc2c81 Z 4f5762aa26eeee7e23b8bf7e772aabcd
# Remove this line to create a well-formed Fossil manifest. # Remove this line to create a well-formed Fossil manifest.

View File

@ -1 +1 @@
578e9fedeaaacd152ae1988920e6c9a0c43f664e2f9461c0994ba427ae1688e7 0e5e0e2f558a417d57c01a2d62cb2117d2adf6ddbc62e6a0208ae23f19b05347

View File

@ -560,11 +560,12 @@ char *speedtest1_once(const char *zFormat, ...){
fprintf(g.pScript,"%s\n",z); fprintf(g.pScript,"%s\n",z);
sqlite3_free(z); sqlite3_free(z);
} }
if( (rc = sqlite3_step(pStmt))==SQLITE_ROW ){ if( sqlite3_step(pStmt)==SQLITE_ROW ){
const char *z = (const char*)sqlite3_column_text(pStmt, 0); const char *z = (const char*)sqlite3_column_text(pStmt, 0);
if( z ) zResult = sqlite3_mprintf("%s", z); if( z ) zResult = sqlite3_mprintf("%s", z);
}else if( rc==SQLITE_ERROR ){ }
rc = sqlite3_reset(pStmt); rc = sqlite3_reset(pStmt);
if( rc!=SQLITE_OK ){
fprintf(stderr, "%s\nError code %d: %s\n", fprintf(stderr, "%s\nError code %d: %s\n",
sqlite3_sql(pStmt), rc, sqlite3_errmsg(g.db)); sqlite3_sql(pStmt), rc, sqlite3_errmsg(g.db));
exit(1); exit(1);
@ -607,7 +608,7 @@ void speedtest1_run(void){
fprintf(g.pScript,"%s\n",z); fprintf(g.pScript,"%s\n",z);
sqlite3_free(z); sqlite3_free(z);
} }
while( (rc = sqlite3_step(g.pStmt))==SQLITE_ROW ){ while( sqlite3_step(g.pStmt)==SQLITE_ROW ){
n = sqlite3_column_count(g.pStmt); n = sqlite3_column_count(g.pStmt);
for(i=0; i<n; i++){ for(i=0; i<n; i++){
const char *z = (const char*)sqlite3_column_text(g.pStmt, i); const char *z = (const char*)sqlite3_column_text(g.pStmt, i);
@ -653,22 +654,26 @@ void speedtest1_run(void){
} }
} }
} }
if( rc==SQLITE_ERROR ){
rc = sqlite3_reset(g.pStmt);
fprintf(stderr, "%s\nError code %d: %s\n",
sqlite3_sql(g.pStmt), rc, sqlite3_errmsg(g.db));
exit(1);
}
#if SQLITE_VERSION_NUMBER>=3006001 #if SQLITE_VERSION_NUMBER>=3006001
if( g.bReprepare ){ if( g.bReprepare ){
sqlite3_stmt *pNew; sqlite3_stmt *pNew;
sqlite3_prepare_v2(g.db, sqlite3_sql(g.pStmt), -1, &pNew, 0); sqlite3_prepare_v2(g.db, sqlite3_sql(g.pStmt), -1, &pNew, 0);
sqlite3_finalize(g.pStmt); rc = sqlite3_finalize(g.pStmt);
if( rc!=SQLITE_OK ){
fprintf(stderr, "%s\nError code %d: %s\n",
sqlite3_sql(pNew), rc, sqlite3_errmsg(g.db));
exit(1);
}
g.pStmt = pNew; g.pStmt = pNew;
}else }else
#endif #endif
{ {
sqlite3_reset(g.pStmt); rc = sqlite3_reset(g.pStmt);
if( rc!=SQLITE_OK ){
fprintf(stderr, "%s\nError code %d: %s\n",
sqlite3_sql(g.pStmt), rc, sqlite3_errmsg(g.db));
exit(1);
}
} }
speedtest1_shrink_memory(); speedtest1_shrink_memory();
} }