aboutsummaryrefslogtreecommitdiff
path: root/src/vdbeapi.c
diff options
context:
space:
mode:
authordan <Dan Kennedy>2022-12-03 18:16:25 +0000
committerdan <Dan Kennedy>2022-12-03 18:16:25 +0000
commitf6f01f15dd9ff495ac59f5abc3bbe15f4d8e88c8 (patch)
treea86050a52d627e409f41dc8e0dd75623a9830b67 /src/vdbeapi.c
parent231ff4b027b077ce9ac0c829cd9cee4108ca9b7a (diff)
downloadsqlite-f6f01f15dd9ff495ac59f5abc3bbe15f4d8e88c8.tar.gz
sqlite-f6f01f15dd9ff495ac59f5abc3bbe15f4d8e88c8.zip
Add CYCLES scanstat measurement to "USE TEMP B-TREE FOR ORDER BY" lines.
FossilOrigin-Name: 365011ae8b7e3fcaa2c4ea9601231a3ef2223e60d7a53ec33013109dca22ad58
Diffstat (limited to 'src/vdbeapi.c')
-rw-r--r--src/vdbeapi.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/vdbeapi.c b/src/vdbeapi.c
index 90b0cc60c..c00980d6b 100644
--- a/src/vdbeapi.c
+++ b/src/vdbeapi.c
@@ -2207,11 +2207,17 @@ int sqlite3_stmt_scanstatus_v2(
}
case SQLITE_SCANSTAT_NCYCLE: {
i64 res = -1;
- if( pScan->addrEndRange ){
+ if( pScan->aAddrRange[0] ){
int ii;
res = 0;
- for(ii=pScan->addrExplain; ii<=pScan->addrEndRange; ii++){
- res += p->anCycle[ii];
+ for(ii=0; ii<ArraySize(pScan->aAddrRange); ii+=2){
+ int iIns = pScan->aAddrRange[ii];
+ int iEnd = pScan->aAddrRange[ii+1];
+ if( iIns==0 ) break;
+ while( iIns<=iEnd ){
+ res += p->anCycle[iIns];
+ iIns++;
+ }
}
}
*(i64*)pOut = res;