448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
|
int createFlag = 1;
Blob *fields; /* array of blobs; each blob holds array of jCardInfo */
fossil_free(zTag);
getAllTicketFields();
if( haveTicket==0 ) return;
tktid = db_int(0, "SELECT tkt_id FROM ticket WHERE tkt_uuid=%Q", zTktUuid);
search_doc_touch('t', tktid, 0);
if( haveTicketChng ){
db_multi_exec("DELETE FROM ticketchng WHERE tkt_id=%d;", tktid);
}
db_multi_exec("DELETE FROM ticket WHERE tkt_id=%d", tktid);
tktid = 0;
fields = blobarray_new( nField );
db_multi_exec("DELETE FROM backlink WHERE srctype=%d AND srcid IN "
"(SELECT rid FROM tagxref WHERE tagid=%d)",BKLNK_TICKET, tagid);
db_prepare(&q, "SELECT rid FROM tagxref WHERE tagid=%d ORDER BY mtime",tagid);
while( db_step(&q)==SQLITE_ROW ){
int rid = db_column_int(&q, 0);
pTicket = manifest_get(rid, CFTYPE_TICKET, 0);
if( pTicket ){
tktid = ticket_insert(pTicket, rid, tktid, fields);
manifest_ticket_event(rid, pTicket, createFlag, tagid);
manifest_destroy(pTicket);
}
createFlag = 0;
}
db_finalize(&q);
/* Extract backlinks from the most recent values of TICKET fields */
for(i=0; i<nField; i++){
Blob *cards = fields + i;
if( blob_size(cards) ){
struct jCardInfo *x = (struct jCardInfo *)blob_buffer(cards);
struct jCardInfo *end = x + blob_count(cards,struct jCardInfo);
for(; x!=end; x++){
|
|
>
|
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
|
int createFlag = 1;
Blob *fields; /* array of blobs; each blob holds array of jCardInfo */
fossil_free(zTag);
getAllTicketFields();
if( haveTicket==0 ) return;
tktid = db_int(0, "SELECT tkt_id FROM ticket WHERE tkt_uuid=%Q", zTktUuid);
if( tktid!=0 ) search_doc_touch('t', tktid, 0);
if( haveTicketChng ){
db_multi_exec("DELETE FROM ticketchng WHERE tkt_id=%d;", tktid);
}
db_multi_exec("DELETE FROM ticket WHERE tkt_id=%d", tktid);
tktid = 0;
fields = blobarray_new( nField );
db_multi_exec("DELETE FROM backlink WHERE srctype=%d AND srcid IN "
"(SELECT rid FROM tagxref WHERE tagid=%d)",BKLNK_TICKET, tagid);
db_prepare(&q, "SELECT rid FROM tagxref WHERE tagid=%d ORDER BY mtime",tagid);
while( db_step(&q)==SQLITE_ROW ){
int rid = db_column_int(&q, 0);
pTicket = manifest_get(rid, CFTYPE_TICKET, 0);
if( pTicket ){
tktid = ticket_insert(pTicket, rid, tktid, fields);
manifest_ticket_event(rid, pTicket, createFlag, tagid);
manifest_destroy(pTicket);
}
createFlag = 0;
}
db_finalize(&q);
search_doc_touch('t', tktid, 0);
/* Extract backlinks from the most recent values of TICKET fields */
for(i=0; i<nField; i++){
Blob *cards = fields + i;
if( blob_size(cards) ){
struct jCardInfo *x = (struct jCardInfo *)blob_buffer(cards);
struct jCardInfo *end = x + blob_count(cards,struct jCardInfo);
for(; x!=end; x++){
|