static struct joinerPair *joinerToField( char *aDatabase, struct joinerField *aJf, char *bDatabase, struct joinerField *bJf, struct joinerSet *identifier) /* Construct joiner pair linking from a to b. */ { struct joinerPair *jp; AllocVar(jp); jp->a = joinerDtfNew(aDatabase, aJf->table, aJf->field); jp->b = joinerDtfNew(bDatabase, bJf->table, bJf->field); jp->identifier = identifier; return jp; }
static struct joinerDtf *tableToDtfs(struct tableJoiner *tjList) /* Make dtfList from tjList, with empty field fields. */ { struct joinerDtf *list = NULL, *dtf; struct tableJoiner *tj; for (tj = tjList; tj != NULL; tj = tj->next) { dtf = joinerDtfNew(tj->database, tj->table, NULL); slAddHead(&list, dtf); } slReverse(&list); return list; }
struct joinerDtf *joinerDtfClone(struct joinerDtf *dtf) /* Return duplicate (deep copy) of joinerDtf. */ { return joinerDtfNew(dtf->database, dtf->table, dtf->field); }