Fossil SCM

A better fix for the previous. The existing nIns variable is sufficient; no need to add the new nTerm variable.

drh 2026-04-19 10:31 UTC trunk
Commit 2c61a6c2865ae3d74e2c035b60811472a702110f97e5cb21ec12454c9d570f41
1 file changed +1 -5
--- src/descendants.c
+++ src/descendants.c
@@ -679,11 +679,10 @@
679679
Bag pending;
680680
Blob ins = BLOB_INITIALIZER;
681681
int nIns = 0;
682682
Stmt q;
683683
int rid;
684
- int nTerm = 0;
685684
686685
bag_init(&seen);
687686
bag_init(&pending);
688687
blob_append_sql(&ins, "INSERT OR IGNORE INTO \"%w\" VALUES", zTab);
689688
db_prepare(&q, "SELECT mid FROM mlink WHERE fid=%d", fid);
@@ -690,21 +689,19 @@
690689
while( db_step(&q)==SQLITE_ROW ){
691690
int mid = db_column_int(&q, 0);
692691
bag_insert(&pending, mid);
693692
bag_insert(&seen, mid);
694693
uses_file_append_term(&ins, &nIns, mid);
695
- nTerm++;
696694
}
697695
db_finalize(&q);
698696
699697
db_prepare(&q, "SELECT mid FROM mlink WHERE pid=%d", fid);
700698
while( db_step(&q)==SQLITE_ROW ){
701699
int mid = db_column_int(&q, 0);
702700
bag_insert(&seen, mid);
703701
if( usesFlags & USESFILE_DELETE ){
704702
uses_file_append_term(&ins, &nIns, mid);
705
- nTerm++;
706703
}
707704
}
708705
db_finalize(&q);
709706
db_prepare(&q, "SELECT cid FROM plink WHERE pid=:rid AND isprim");
710707
@@ -715,15 +712,14 @@
715712
int mid = db_column_int(&q, 0);
716713
if( bag_find(&seen, mid) ) continue;
717714
bag_insert(&seen, mid);
718715
bag_insert(&pending, mid);
719716
uses_file_append_term(&ins, &nIns, mid);
720
- nTerm++;
721717
}
722718
db_reset(&q);
723719
}
724720
db_finalize(&q);
725
- if( nTerm>0 ) db_exec_sql(blob_str(&ins));
721
+ if( nIns>0 ) db_exec_sql(blob_str(&ins));
726722
blob_reset(&ins);
727723
bag_clear(&seen);
728724
bag_clear(&pending);
729725
}
730726
--- src/descendants.c
+++ src/descendants.c
@@ -679,11 +679,10 @@
679 Bag pending;
680 Blob ins = BLOB_INITIALIZER;
681 int nIns = 0;
682 Stmt q;
683 int rid;
684 int nTerm = 0;
685
686 bag_init(&seen);
687 bag_init(&pending);
688 blob_append_sql(&ins, "INSERT OR IGNORE INTO \"%w\" VALUES", zTab);
689 db_prepare(&q, "SELECT mid FROM mlink WHERE fid=%d", fid);
@@ -690,21 +689,19 @@
690 while( db_step(&q)==SQLITE_ROW ){
691 int mid = db_column_int(&q, 0);
692 bag_insert(&pending, mid);
693 bag_insert(&seen, mid);
694 uses_file_append_term(&ins, &nIns, mid);
695 nTerm++;
696 }
697 db_finalize(&q);
698
699 db_prepare(&q, "SELECT mid FROM mlink WHERE pid=%d", fid);
700 while( db_step(&q)==SQLITE_ROW ){
701 int mid = db_column_int(&q, 0);
702 bag_insert(&seen, mid);
703 if( usesFlags & USESFILE_DELETE ){
704 uses_file_append_term(&ins, &nIns, mid);
705 nTerm++;
706 }
707 }
708 db_finalize(&q);
709 db_prepare(&q, "SELECT cid FROM plink WHERE pid=:rid AND isprim");
710
@@ -715,15 +712,14 @@
715 int mid = db_column_int(&q, 0);
716 if( bag_find(&seen, mid) ) continue;
717 bag_insert(&seen, mid);
718 bag_insert(&pending, mid);
719 uses_file_append_term(&ins, &nIns, mid);
720 nTerm++;
721 }
722 db_reset(&q);
723 }
724 db_finalize(&q);
725 if( nTerm>0 ) db_exec_sql(blob_str(&ins));
726 blob_reset(&ins);
727 bag_clear(&seen);
728 bag_clear(&pending);
729 }
730
--- src/descendants.c
+++ src/descendants.c
@@ -679,11 +679,10 @@
679 Bag pending;
680 Blob ins = BLOB_INITIALIZER;
681 int nIns = 0;
682 Stmt q;
683 int rid;
 
684
685 bag_init(&seen);
686 bag_init(&pending);
687 blob_append_sql(&ins, "INSERT OR IGNORE INTO \"%w\" VALUES", zTab);
688 db_prepare(&q, "SELECT mid FROM mlink WHERE fid=%d", fid);
@@ -690,21 +689,19 @@
689 while( db_step(&q)==SQLITE_ROW ){
690 int mid = db_column_int(&q, 0);
691 bag_insert(&pending, mid);
692 bag_insert(&seen, mid);
693 uses_file_append_term(&ins, &nIns, mid);
 
694 }
695 db_finalize(&q);
696
697 db_prepare(&q, "SELECT mid FROM mlink WHERE pid=%d", fid);
698 while( db_step(&q)==SQLITE_ROW ){
699 int mid = db_column_int(&q, 0);
700 bag_insert(&seen, mid);
701 if( usesFlags & USESFILE_DELETE ){
702 uses_file_append_term(&ins, &nIns, mid);
 
703 }
704 }
705 db_finalize(&q);
706 db_prepare(&q, "SELECT cid FROM plink WHERE pid=:rid AND isprim");
707
@@ -715,15 +712,14 @@
712 int mid = db_column_int(&q, 0);
713 if( bag_find(&seen, mid) ) continue;
714 bag_insert(&seen, mid);
715 bag_insert(&pending, mid);
716 uses_file_append_term(&ins, &nIns, mid);
 
717 }
718 db_reset(&q);
719 }
720 db_finalize(&q);
721 if( nIns>0 ) db_exec_sql(blob_str(&ins));
722 blob_reset(&ins);
723 bag_clear(&seen);
724 bag_clear(&pending);
725 }
726

Keyboard Shortcuts

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