Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | When computing the verification hash in speedtest1, do not include the value of floating point results (which can very in trailing bits depending on platform) but merely hash the fact that a floating point value was received. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
e12225d59c63ba392db4fa8dc26700ac |
User & Date: | drh 2020-06-26 17:56:43.524 |
Context
2020-06-26
| ||
20:41 | Fix a problem that could cause an infinite loop in the fts3 'merge' command. (check-in: be545f85a6 user: dan tags: trunk) | |
17:56 | When computing the verification hash in speedtest1, do not include the value of floating point results (which can very in trailing bits depending on platform) but merely hash the fact that a floating point value was received. (check-in: e12225d59c user: drh tags: trunk) | |
16:17 | Improvements to speedtest1.c for more consistent verification hashes. (check-in: d34b8ff5f8 user: drh tags: trunk) | |
Changes
Changes to test/speedtest1.c.
︙ | ︙ | |||
528 529 530 531 532 533 534 | if( g.bSqlOnly ) return; assert( g.pStmt ); g.nResult = 0; while( sqlite3_step(g.pStmt)==SQLITE_ROW ){ n = sqlite3_column_count(g.pStmt); for(i=0; i<n; i++){ const char *z = (const char*)sqlite3_column_text(g.pStmt, i); | < | | < | < | | 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 | if( g.bSqlOnly ) return; assert( g.pStmt ); g.nResult = 0; while( sqlite3_step(g.pStmt)==SQLITE_ROW ){ n = sqlite3_column_count(g.pStmt); for(i=0; i<n; i++){ const char *z = (const char*)sqlite3_column_text(g.pStmt, i); if( z==0 ) z = "nil"; len = (int)strlen(z); #ifndef SPEEDTEST_OMIT_HASH if( g.bVerify ){ int eType = sqlite3_column_type(g.pStmt, i); unsigned char zPrefix[2]; zPrefix[0] = '\n'; zPrefix[1] = "-IFTBN"[eType]; if( g.nResByte ){ HashUpdate(zPrefix, 2); }else{ HashUpdate(zPrefix+1, 1); } if( eType==SQLITE_FLOAT ){ /* Omit the value of floating-point results from the verification ** hash. The only thing we record is the fact that the result was ** a floating-point value. */ g.nResByte += 2; }else if( eType==SQLITE_BLOB ){ int nBlob = sqlite3_column_bytes(g.pStmt, i); int iBlob; unsigned char zChar[2]; const unsigned char *aBlob = sqlite3_column_blob(g.pStmt, i); for(iBlob=0; iBlob<nBlob; iBlob++){ zChar[0] = "0123456789abcdef"[aBlob[iBlob]>>4]; |
︙ | ︙ |