Fossil SCM

Add db_add_unsent() and replace numerous "INSERT OR IGNORE INTO unset" statements with that.

stephan 2023-02-21 09:52 forumpost-locking
Commit 98d4ee73d7f9a4ca393bdfd93ca8b13fc06e4664a40b7247c61ace43df32e1a5
+1 -1
--- src/attach.c
+++ src/attach.c
@@ -244,11 +244,11 @@
244244
"INSERT INTO modreq(objid,attachRid) VALUES(%d,%d);",
245245
rid, attachRid
246246
);
247247
}else{
248248
rid = content_put(pAttach);
249
- db_multi_exec("INSERT OR IGNORE INTO unsent VALUES(%d);", rid);
249
+ db_add_unsent(rid);
250250
db_multi_exec("INSERT OR IGNORE INTO unclustered VALUES(%d);", rid);
251251
}
252252
manifest_crosslink(rid, pAttach, MC_NONE);
253253
}
254254
255255
--- src/attach.c
+++ src/attach.c
@@ -244,11 +244,11 @@
244 "INSERT INTO modreq(objid,attachRid) VALUES(%d,%d);",
245 rid, attachRid
246 );
247 }else{
248 rid = content_put(pAttach);
249 db_multi_exec("INSERT OR IGNORE INTO unsent VALUES(%d);", rid);
250 db_multi_exec("INSERT OR IGNORE INTO unclustered VALUES(%d);", rid);
251 }
252 manifest_crosslink(rid, pAttach, MC_NONE);
253 }
254
255
--- src/attach.c
+++ src/attach.c
@@ -244,11 +244,11 @@
244 "INSERT INTO modreq(objid,attachRid) VALUES(%d,%d);",
245 rid, attachRid
246 );
247 }else{
248 rid = content_put(pAttach);
249 db_add_unsent(rid);
250 db_multi_exec("INSERT OR IGNORE INTO unclustered VALUES(%d);", rid);
251 }
252 manifest_crosslink(rid, pAttach, MC_NONE);
253 }
254
255
+5 -5
--- src/branch.c
+++ src/branch.c
@@ -193,17 +193,17 @@
193193
194194
brid = content_put_ex(&branch, 0, 0, 0, isPrivate);
195195
if( brid==0 ){
196196
fossil_fatal("trouble committing manifest: %s", g.zErrMsg);
197197
}
198
- db_multi_exec("INSERT OR IGNORE INTO unsent VALUES(%d)", brid);
198
+ db_add_unsent(brid);
199199
if( manifest_crosslink(brid, &branch, MC_PERMIT_HOOKS)==0 ){
200200
fossil_fatal("%s", g.zErrMsg);
201201
}
202202
assert( blob_is_reset(&branch) );
203203
content_deltify(rootid, &brid, 1, 0);
204
- zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", brid);
204
+ zUuid = rid_to_uuid(brid);
205205
fossil_print("New branch: %s\n", zUuid);
206206
if( g.argc==3 ){
207207
fossil_print(
208208
"\n"
209209
"Note: the local check-out has not been updated to the new\n"
@@ -460,11 +460,11 @@
460460
}else if(manifest_crosslink(newRid, &manifest, 0)==0){
461461
fossil_fatal("Crosslinking error: %s", g.zErrMsg);
462462
}
463463
fossil_print("Saved new control artifact %z (RID %d).\n",
464464
rid_to_uuid(newRid), newRid);
465
- db_multi_exec("INSERT OR IGNORE INTO unsent VALUES(%d)", newRid);
465
+ db_add_unsent(newRid);
466466
if(fDryRun){
467467
fossil_print("Dry-run mode: rolling back new artifact.\n");
468468
assert(0!=doRollback);
469469
}
470470
}
@@ -719,12 +719,12 @@
719719
branch_prepare_list_query(&q, brFlags, zBrNameGlob, nLimit);
720720
while( db_step(&q)==SQLITE_ROW ){
721721
const char *zBr = db_column_text(&q, 0);
722722
int isPriv = zCurrent!=0 && db_column_int(&q, 1)==1;
723723
int isCur = zCurrent!=0 && fossil_strcmp(zCurrent,zBr)==0;
724
- fossil_print("%s%s%s\n",
725
- ( (brFlags & BRL_PRIVATE) ? " " : ( isPriv ? "#" : " ") ),
724
+ fossil_print("%s%s%s\n",
725
+ ( (brFlags & BRL_PRIVATE) ? " " : ( isPriv ? "#" : " ") ),
726726
(isCur ? "* " : " "), zBr);
727727
}
728728
db_finalize(&q);
729729
}else if( strncmp(zCmd,"new",n)==0 ){
730730
branch_new();
731731
--- src/branch.c
+++ src/branch.c
@@ -193,17 +193,17 @@
193
194 brid = content_put_ex(&branch, 0, 0, 0, isPrivate);
195 if( brid==0 ){
196 fossil_fatal("trouble committing manifest: %s", g.zErrMsg);
197 }
198 db_multi_exec("INSERT OR IGNORE INTO unsent VALUES(%d)", brid);
199 if( manifest_crosslink(brid, &branch, MC_PERMIT_HOOKS)==0 ){
200 fossil_fatal("%s", g.zErrMsg);
201 }
202 assert( blob_is_reset(&branch) );
203 content_deltify(rootid, &brid, 1, 0);
204 zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", brid);
205 fossil_print("New branch: %s\n", zUuid);
206 if( g.argc==3 ){
207 fossil_print(
208 "\n"
209 "Note: the local check-out has not been updated to the new\n"
@@ -460,11 +460,11 @@
460 }else if(manifest_crosslink(newRid, &manifest, 0)==0){
461 fossil_fatal("Crosslinking error: %s", g.zErrMsg);
462 }
463 fossil_print("Saved new control artifact %z (RID %d).\n",
464 rid_to_uuid(newRid), newRid);
465 db_multi_exec("INSERT OR IGNORE INTO unsent VALUES(%d)", newRid);
466 if(fDryRun){
467 fossil_print("Dry-run mode: rolling back new artifact.\n");
468 assert(0!=doRollback);
469 }
470 }
@@ -719,12 +719,12 @@
719 branch_prepare_list_query(&q, brFlags, zBrNameGlob, nLimit);
720 while( db_step(&q)==SQLITE_ROW ){
721 const char *zBr = db_column_text(&q, 0);
722 int isPriv = zCurrent!=0 && db_column_int(&q, 1)==1;
723 int isCur = zCurrent!=0 && fossil_strcmp(zCurrent,zBr)==0;
724 fossil_print("%s%s%s\n",
725 ( (brFlags & BRL_PRIVATE) ? " " : ( isPriv ? "#" : " ") ),
726 (isCur ? "* " : " "), zBr);
727 }
728 db_finalize(&q);
729 }else if( strncmp(zCmd,"new",n)==0 ){
730 branch_new();
731
--- src/branch.c
+++ src/branch.c
@@ -193,17 +193,17 @@
193
194 brid = content_put_ex(&branch, 0, 0, 0, isPrivate);
195 if( brid==0 ){
196 fossil_fatal("trouble committing manifest: %s", g.zErrMsg);
197 }
198 db_add_unsent(brid);
199 if( manifest_crosslink(brid, &branch, MC_PERMIT_HOOKS)==0 ){
200 fossil_fatal("%s", g.zErrMsg);
201 }
202 assert( blob_is_reset(&branch) );
203 content_deltify(rootid, &brid, 1, 0);
204 zUuid = rid_to_uuid(brid);
205 fossil_print("New branch: %s\n", zUuid);
206 if( g.argc==3 ){
207 fossil_print(
208 "\n"
209 "Note: the local check-out has not been updated to the new\n"
@@ -460,11 +460,11 @@
460 }else if(manifest_crosslink(newRid, &manifest, 0)==0){
461 fossil_fatal("Crosslinking error: %s", g.zErrMsg);
462 }
463 fossil_print("Saved new control artifact %z (RID %d).\n",
464 rid_to_uuid(newRid), newRid);
465 db_add_unsent(newRid);
466 if(fDryRun){
467 fossil_print("Dry-run mode: rolling back new artifact.\n");
468 assert(0!=doRollback);
469 }
470 }
@@ -719,12 +719,12 @@
719 branch_prepare_list_query(&q, brFlags, zBrNameGlob, nLimit);
720 while( db_step(&q)==SQLITE_ROW ){
721 const char *zBr = db_column_text(&q, 0);
722 int isPriv = zCurrent!=0 && db_column_int(&q, 1)==1;
723 int isCur = zCurrent!=0 && fossil_strcmp(zCurrent,zBr)==0;
724 fossil_print("%s%s%s\n",
725 ( (brFlags & BRL_PRIVATE) ? " " : ( isPriv ? "#" : " ") ),
726 (isCur ? "* " : " "), zBr);
727 }
728 db_finalize(&q);
729 }else if( strncmp(zCmd,"new",n)==0 ){
730 branch_new();
731
+2 -2
--- src/checkin.c
+++ src/checkin.c
@@ -2663,11 +2663,11 @@
26632663
if( rid>0 ){
26642664
content_deltify(rid, &nrid, 1, 0);
26652665
}
26662666
db_multi_exec("UPDATE vfile SET mrid=%d, rid=%d, mhash=NULL WHERE id=%d",
26672667
nrid,nrid,id);
2668
- db_multi_exec("INSERT OR IGNORE INTO unsent VALUES(%d)", nrid);
2668
+ db_add_unsent(nrid);
26692669
}
26702670
}
26712671
db_finalize(&q);
26722672
if( nConflict && !allowConflict ){
26732673
fossil_fatal("abort due to unresolved merge conflicts; "
@@ -2761,11 +2761,11 @@
27612761
27622762
nvid = content_put(&manifest);
27632763
if( nvid==0 ){
27642764
fossil_fatal("trouble committing manifest: %s", g.zErrMsg);
27652765
}
2766
- db_multi_exec("INSERT OR IGNORE INTO unsent VALUES(%d)", nvid);
2766
+ db_add_unsent(nvid);
27672767
if( manifest_crosslink(nvid, &manifest,
27682768
dryRunFlag ? MC_NONE : MC_PERMIT_HOOKS)==0 ){
27692769
fossil_fatal("%s", g.zErrMsg);
27702770
}
27712771
assert( blob_is_reset(&manifest) );
27722772
--- src/checkin.c
+++ src/checkin.c
@@ -2663,11 +2663,11 @@
2663 if( rid>0 ){
2664 content_deltify(rid, &nrid, 1, 0);
2665 }
2666 db_multi_exec("UPDATE vfile SET mrid=%d, rid=%d, mhash=NULL WHERE id=%d",
2667 nrid,nrid,id);
2668 db_multi_exec("INSERT OR IGNORE INTO unsent VALUES(%d)", nrid);
2669 }
2670 }
2671 db_finalize(&q);
2672 if( nConflict && !allowConflict ){
2673 fossil_fatal("abort due to unresolved merge conflicts; "
@@ -2761,11 +2761,11 @@
2761
2762 nvid = content_put(&manifest);
2763 if( nvid==0 ){
2764 fossil_fatal("trouble committing manifest: %s", g.zErrMsg);
2765 }
2766 db_multi_exec("INSERT OR IGNORE INTO unsent VALUES(%d)", nvid);
2767 if( manifest_crosslink(nvid, &manifest,
2768 dryRunFlag ? MC_NONE : MC_PERMIT_HOOKS)==0 ){
2769 fossil_fatal("%s", g.zErrMsg);
2770 }
2771 assert( blob_is_reset(&manifest) );
2772
--- src/checkin.c
+++ src/checkin.c
@@ -2663,11 +2663,11 @@
2663 if( rid>0 ){
2664 content_deltify(rid, &nrid, 1, 0);
2665 }
2666 db_multi_exec("UPDATE vfile SET mrid=%d, rid=%d, mhash=NULL WHERE id=%d",
2667 nrid,nrid,id);
2668 db_add_unsent(nrid);
2669 }
2670 }
2671 db_finalize(&q);
2672 if( nConflict && !allowConflict ){
2673 fossil_fatal("abort due to unresolved merge conflicts; "
@@ -2761,11 +2761,11 @@
2761
2762 nvid = content_put(&manifest);
2763 if( nvid==0 ){
2764 fossil_fatal("trouble committing manifest: %s", g.zErrMsg);
2765 }
2766 db_add_unsent(nvid);
2767 if( manifest_crosslink(nvid, &manifest,
2768 dryRunFlag ? MC_NONE : MC_PERMIT_HOOKS)==0 ){
2769 fossil_fatal("%s", g.zErrMsg);
2770 }
2771 assert( blob_is_reset(&manifest) );
2772
+7
--- src/db.c
+++ src/db.c
@@ -5111,5 +5111,12 @@
51115111
fossil_free(zRepo);
51125112
}
51135113
fossil_free(zCkout);
51145114
return rc;
51155115
}
5116
+
5117
+/*
5118
+** Adds the given rid to the UNSENT table.
5119
+*/
5120
+void db_add_unsent(int rid){
5121
+ db_multi_exec("INSERT OR IGNORE INTO unsent VALUES(%d)", rid);
5122
+}
51165123
--- src/db.c
+++ src/db.c
@@ -5111,5 +5111,12 @@
5111 fossil_free(zRepo);
5112 }
5113 fossil_free(zCkout);
5114 return rc;
5115 }
 
 
 
 
 
 
 
5116
--- src/db.c
+++ src/db.c
@@ -5111,5 +5111,12 @@
5111 fossil_free(zRepo);
5112 }
5113 fossil_free(zCkout);
5114 return rc;
5115 }
5116
5117 /*
5118 ** Adds the given rid to the UNSENT table.
5119 */
5120 void db_add_unsent(int rid){
5121 db_multi_exec("INSERT OR IGNORE INTO unsent VALUES(%d)", rid);
5122 }
5123
+1 -1
--- src/event.c
+++ src/event.c
@@ -328,11 +328,11 @@
328328
blob_appendf(&event, "W %d\n%s\n", strlen(zBody), zBody);
329329
md5sum_blob(&event, &cksum);
330330
blob_appendf(&event, "Z %b\n", &cksum);
331331
blob_reset(&cksum);
332332
nrid = content_put(&event);
333
- db_multi_exec("INSERT OR IGNORE INTO unsent VALUES(%d)", nrid);
333
+ db_add_unsent(nrid);
334334
if( manifest_crosslink(nrid, &event, MC_NONE)==0 ){
335335
db_end_transaction(1);
336336
return 0;
337337
}
338338
assert( blob_is_reset(&event) );
339339
--- src/event.c
+++ src/event.c
@@ -328,11 +328,11 @@
328 blob_appendf(&event, "W %d\n%s\n", strlen(zBody), zBody);
329 md5sum_blob(&event, &cksum);
330 blob_appendf(&event, "Z %b\n", &cksum);
331 blob_reset(&cksum);
332 nrid = content_put(&event);
333 db_multi_exec("INSERT OR IGNORE INTO unsent VALUES(%d)", nrid);
334 if( manifest_crosslink(nrid, &event, MC_NONE)==0 ){
335 db_end_transaction(1);
336 return 0;
337 }
338 assert( blob_is_reset(&event) );
339
--- src/event.c
+++ src/event.c
@@ -328,11 +328,11 @@
328 blob_appendf(&event, "W %d\n%s\n", strlen(zBody), zBody);
329 md5sum_blob(&event, &cksum);
330 blob_appendf(&event, "Z %b\n", &cksum);
331 blob_reset(&cksum);
332 nrid = content_put(&event);
333 db_add_unsent(nrid);
334 if( manifest_crosslink(nrid, &event, MC_NONE)==0 ){
335 db_end_transaction(1);
336 return 0;
337 }
338 assert( blob_is_reset(&event) );
339
--- src/json_branch.c
+++ src/json_branch.c
@@ -293,11 +293,11 @@
293293
294294
brid = content_put_ex(&branch, 0, 0, 0, zOpt->isPrivate);
295295
if( brid==0 ){
296296
fossil_panic("Problem committing manifest: %s", g.zErrMsg);
297297
}
298
- db_multi_exec("INSERT OR IGNORE INTO unsent VALUES(%d)", brid);
298
+ db_add_unsent(brid);
299299
if( manifest_crosslink(brid, &branch, MC_PERMIT_HOOKS)==0 ){
300300
fossil_panic("%s", g.zErrMsg);
301301
}
302302
assert( blob_is_reset(&branch) );
303303
content_deltify(rootid, &brid, 1, 0);
304304
--- src/json_branch.c
+++ src/json_branch.c
@@ -293,11 +293,11 @@
293
294 brid = content_put_ex(&branch, 0, 0, 0, zOpt->isPrivate);
295 if( brid==0 ){
296 fossil_panic("Problem committing manifest: %s", g.zErrMsg);
297 }
298 db_multi_exec("INSERT OR IGNORE INTO unsent VALUES(%d)", brid);
299 if( manifest_crosslink(brid, &branch, MC_PERMIT_HOOKS)==0 ){
300 fossil_panic("%s", g.zErrMsg);
301 }
302 assert( blob_is_reset(&branch) );
303 content_deltify(rootid, &brid, 1, 0);
304
--- src/json_branch.c
+++ src/json_branch.c
@@ -293,11 +293,11 @@
293
294 brid = content_put_ex(&branch, 0, 0, 0, zOpt->isPrivate);
295 if( brid==0 ){
296 fossil_panic("Problem committing manifest: %s", g.zErrMsg);
297 }
298 db_add_unsent(brid);
299 if( manifest_crosslink(brid, &branch, MC_PERMIT_HOOKS)==0 ){
300 fossil_panic("%s", g.zErrMsg);
301 }
302 assert( blob_is_reset(&branch) );
303 content_deltify(rootid, &brid, 1, 0);
304
+1 -1
--- src/tkt.c
+++ src/tkt.c
@@ -862,11 +862,11 @@
862862
db_multi_exec(
863863
"INSERT INTO modreq(objid, tktid) VALUES(%d,%Q)",
864864
rid, zTktId
865865
);
866866
}else{
867
- db_multi_exec("INSERT OR IGNORE INTO unsent VALUES(%d);", rid);
867
+ db_add_unsent(rid);
868868
db_multi_exec("INSERT OR IGNORE INTO unclustered VALUES(%d);", rid);
869869
}
870870
result = (manifest_crosslink(rid, pTicket, MC_NONE)==0);
871871
assert( blob_is_reset(pTicket) );
872872
if( !result ){
873873
--- src/tkt.c
+++ src/tkt.c
@@ -862,11 +862,11 @@
862 db_multi_exec(
863 "INSERT INTO modreq(objid, tktid) VALUES(%d,%Q)",
864 rid, zTktId
865 );
866 }else{
867 db_multi_exec("INSERT OR IGNORE INTO unsent VALUES(%d);", rid);
868 db_multi_exec("INSERT OR IGNORE INTO unclustered VALUES(%d);", rid);
869 }
870 result = (manifest_crosslink(rid, pTicket, MC_NONE)==0);
871 assert( blob_is_reset(pTicket) );
872 if( !result ){
873
--- src/tkt.c
+++ src/tkt.c
@@ -862,11 +862,11 @@
862 db_multi_exec(
863 "INSERT INTO modreq(objid, tktid) VALUES(%d,%Q)",
864 rid, zTktId
865 );
866 }else{
867 db_add_unsent(rid);
868 db_multi_exec("INSERT OR IGNORE INTO unclustered VALUES(%d);", rid);
869 }
870 result = (manifest_crosslink(rid, pTicket, MC_NONE)==0);
871 assert( blob_is_reset(pTicket) );
872 if( !result ){
873
+1 -1
--- src/wiki.c
+++ src/wiki.c
@@ -635,11 +635,11 @@
635635
}else{
636636
nrid = content_put_ex(pWiki, 0, 0, 0, 1);
637637
moderation_table_create();
638638
db_multi_exec("INSERT INTO modreq(objid) VALUES(%d)", nrid);
639639
}
640
- db_multi_exec("INSERT OR IGNORE INTO unsent VALUES(%d)", nrid);
640
+ db_add_unsent(nrid);
641641
db_multi_exec("INSERT OR IGNORE INTO unclustered VALUES(%d);", nrid);
642642
manifest_crosslink(nrid, pWiki, MC_NONE);
643643
if( login_is_individual() ){
644644
alert_user_contact(login_name());
645645
}
646646
--- src/wiki.c
+++ src/wiki.c
@@ -635,11 +635,11 @@
635 }else{
636 nrid = content_put_ex(pWiki, 0, 0, 0, 1);
637 moderation_table_create();
638 db_multi_exec("INSERT INTO modreq(objid) VALUES(%d)", nrid);
639 }
640 db_multi_exec("INSERT OR IGNORE INTO unsent VALUES(%d)", nrid);
641 db_multi_exec("INSERT OR IGNORE INTO unclustered VALUES(%d);", nrid);
642 manifest_crosslink(nrid, pWiki, MC_NONE);
643 if( login_is_individual() ){
644 alert_user_contact(login_name());
645 }
646
--- src/wiki.c
+++ src/wiki.c
@@ -635,11 +635,11 @@
635 }else{
636 nrid = content_put_ex(pWiki, 0, 0, 0, 1);
637 moderation_table_create();
638 db_multi_exec("INSERT INTO modreq(objid) VALUES(%d)", nrid);
639 }
640 db_add_unsent(nrid);
641 db_multi_exec("INSERT OR IGNORE INTO unclustered VALUES(%d);", nrid);
642 manifest_crosslink(nrid, pWiki, MC_NONE);
643 if( login_is_individual() ){
644 alert_user_contact(login_name());
645 }
646

Keyboard Shortcuts

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