623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
|
** be well-formed. If everything is OK, return NULL. If something is
** amiss, then return a pointer to a string (obtained from malloc) that
** describes the problem.
*/
char *ticket_schema_check(const char *zSchema){
char *zErr = 0;
int rc;
sqlite3 *db;
rc = sqlite3_open(":memory:", &db);
if( rc==SQLITE_OK ){
rc = sqlite3_exec(db, zSchema, 0, 0, &zErr);
if( rc!=SQLITE_OK ){
sqlite3_close(db);
return zErr;
}
rc = sqlite3_exec(db, "SELECT tkt_id, tkt_uuid, tkt_mtime FROM ticket",
0, 0, 0);
sqlite3_close(db);
if( rc!=SQLITE_OK ){
zErr = mprintf("schema fails to define a valid ticket table "
"containing all required fields");
return zErr;
}
}
return 0;
|
|
|
|
|
|
|
|
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
|
** be well-formed. If everything is OK, return NULL. If something is
** amiss, then return a pointer to a string (obtained from malloc) that
** describes the problem.
*/
char *ticket_schema_check(const char *zSchema){
char *zErr = 0;
int rc;
sqlite4 *db;
rc = sqlite4_open(0, ":memory:", &db, SQLITE_OPEN_READWRITE);
if( rc==SQLITE_OK ){
rc = sqlite4_exec(db, zSchema, 0, 0, &zErr);
if( rc!=SQLITE_OK ){
sqlite4_close(db);
return zErr;
}
rc = sqlite4_exec(db, "SELECT tkt_id, tkt_uuid, tkt_mtime FROM ticket",
0, 0, 0);
sqlite4_close(db);
if( rc!=SQLITE_OK ){
zErr = mprintf("schema fails to define a valid ticket table "
"containing all required fields");
return zErr;
}
}
return 0;
|
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
|
zTitle = mprintf("Check-Ins Associated With Ticket %h", zUuid);
}else{
zTitle = mprintf("Timeline Of Ticket %h", zUuid);
}
style_header(zTitle);
free(zTitle);
sqlite3_snprintf(6, zGlobPattern, "%s", zUuid);
canonical16(zGlobPattern, strlen(zGlobPattern));
tagid = db_int(0, "SELECT tagid FROM tag WHERE tagname GLOB 'tkt-%q*'",zUuid);
if( tagid==0 ){
@ No such ticket: %h(zUuid)
style_footer();
return;
}
|
|
|
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
|
zTitle = mprintf("Check-Ins Associated With Ticket %h", zUuid);
}else{
zTitle = mprintf("Timeline Of Ticket %h", zUuid);
}
style_header(zTitle);
free(zTitle);
sqlite4_snprintf(zGlobPattern, 6, "%s", zUuid);
canonical16(zGlobPattern, strlen(zGlobPattern));
tagid = db_int(0, "SELECT tagid FROM tag WHERE tagname GLOB 'tkt-%q*'",zUuid);
if( tagid==0 ){
@ No such ticket: %h(zUuid)
style_footer();
return;
}
|