Fossil SCM

Make use of the new "aggregate mode" for the DBSTAT virtual table when computing the /repo-tabsize page, both as a test of DBSTAT and because the new mode is usually faster.

drh 2020-01-17 22:00 trunk
Commit cc86de732a71c94b1843e1908b14028b80c825368229a8da8d15c0f28a105a36
1 file changed +4 -4
+4 -4
--- src/stat.c
+++ src/stat.c
@@ -606,13 +606,13 @@
606606
"CREATE TEMP TABLE trans(name TEXT PRIMARY KEY,tabname TEXT)WITHOUT ROWID;"
607607
"INSERT INTO trans(name,tabname)"
608608
" SELECT name, tbl_name FROM repository.sqlite_master;"
609609
"CREATE TEMP TABLE piechart(amt REAL, label TEXT);"
610610
"INSERT INTO piechart(amt,label)"
611
- " SELECT count(*), "
611
+ " SELECT sum(pageno),"
612612
" coalesce((SELECT tabname FROM trans WHERE trans.name=dbstat.name),name)"
613
- " FROM dbstat('repository')"
613
+ " FROM dbstat('repository',TRUE)"
614614
" GROUP BY 2 ORDER BY 2;"
615615
);
616616
nPageFree = db_int(0, "PRAGMA repository.freelist_count");
617617
if( nPageFree>0 ){
618618
db_multi_exec(
@@ -632,13 +632,13 @@
632632
"DELETE FROM trans;"
633633
"INSERT INTO trans(name,tabname)"
634634
" SELECT name, tbl_name FROM localdb.sqlite_master;"
635635
"DELETE FROM piechart;"
636636
"INSERT INTO piechart(amt,label)"
637
- " SELECT count(*), "
637
+ " SELECT sum(pageno), "
638638
" coalesce((SELECT tabname FROM trans WHERE trans.name=dbstat.name),name)"
639
- " FROM dbstat('localdb')"
639
+ " FROM dbstat('localdb',TRUE)"
640640
" GROUP BY 2 ORDER BY 2;"
641641
);
642642
nPageFree = db_int(0, "PRAGMA localdb.freelist_count");
643643
if( nPageFree>0 ){
644644
db_multi_exec(
645645
--- src/stat.c
+++ src/stat.c
@@ -606,13 +606,13 @@
606 "CREATE TEMP TABLE trans(name TEXT PRIMARY KEY,tabname TEXT)WITHOUT ROWID;"
607 "INSERT INTO trans(name,tabname)"
608 " SELECT name, tbl_name FROM repository.sqlite_master;"
609 "CREATE TEMP TABLE piechart(amt REAL, label TEXT);"
610 "INSERT INTO piechart(amt,label)"
611 " SELECT count(*), "
612 " coalesce((SELECT tabname FROM trans WHERE trans.name=dbstat.name),name)"
613 " FROM dbstat('repository')"
614 " GROUP BY 2 ORDER BY 2;"
615 );
616 nPageFree = db_int(0, "PRAGMA repository.freelist_count");
617 if( nPageFree>0 ){
618 db_multi_exec(
@@ -632,13 +632,13 @@
632 "DELETE FROM trans;"
633 "INSERT INTO trans(name,tabname)"
634 " SELECT name, tbl_name FROM localdb.sqlite_master;"
635 "DELETE FROM piechart;"
636 "INSERT INTO piechart(amt,label)"
637 " SELECT count(*), "
638 " coalesce((SELECT tabname FROM trans WHERE trans.name=dbstat.name),name)"
639 " FROM dbstat('localdb')"
640 " GROUP BY 2 ORDER BY 2;"
641 );
642 nPageFree = db_int(0, "PRAGMA localdb.freelist_count");
643 if( nPageFree>0 ){
644 db_multi_exec(
645
--- src/stat.c
+++ src/stat.c
@@ -606,13 +606,13 @@
606 "CREATE TEMP TABLE trans(name TEXT PRIMARY KEY,tabname TEXT)WITHOUT ROWID;"
607 "INSERT INTO trans(name,tabname)"
608 " SELECT name, tbl_name FROM repository.sqlite_master;"
609 "CREATE TEMP TABLE piechart(amt REAL, label TEXT);"
610 "INSERT INTO piechart(amt,label)"
611 " SELECT sum(pageno),"
612 " coalesce((SELECT tabname FROM trans WHERE trans.name=dbstat.name),name)"
613 " FROM dbstat('repository',TRUE)"
614 " GROUP BY 2 ORDER BY 2;"
615 );
616 nPageFree = db_int(0, "PRAGMA repository.freelist_count");
617 if( nPageFree>0 ){
618 db_multi_exec(
@@ -632,13 +632,13 @@
632 "DELETE FROM trans;"
633 "INSERT INTO trans(name,tabname)"
634 " SELECT name, tbl_name FROM localdb.sqlite_master;"
635 "DELETE FROM piechart;"
636 "INSERT INTO piechart(amt,label)"
637 " SELECT sum(pageno), "
638 " coalesce((SELECT tabname FROM trans WHERE trans.name=dbstat.name),name)"
639 " FROM dbstat('localdb',TRUE)"
640 " GROUP BY 2 ORDER BY 2;"
641 );
642 nPageFree = db_int(0, "PRAGMA localdb.freelist_count");
643 if( nPageFree>0 ){
644 db_multi_exec(
645

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button