e5297f22c5d7c1cb0b041b0ea4c66206a244c90b hiram Mon Sep 30 10:36:52 2024 -0700 add multiple word search to the hgGateway assembly search box function refs #32596 diff --git src/hg/inc/assemblyList.h src/hg/inc/assemblyList.h index a596342..52e2fb1 100644 --- src/hg/inc/assemblyList.h +++ src/hg/inc/assemblyList.h @@ -1,104 +1,110 @@ /* assemblyList.h was originally generated by the autoSql program, which also * generated assemblyList.c and assemblyList.sql. This header links the database and * the RAM representation of objects. */ #ifndef ASSEMBLYLIST_H #define ASSEMBLYLIST_H #include "jksql.h" #define ASSEMBLYLIST_NUM_COLS 13 extern char *assemblyListCommaSepFieldNames; struct assemblyList /* listing all UCSC genomes, and all NCBI assemblies, with search priority, and status if browser available or can be requested */ { struct assemblyList *next; /* Next in singly linked list. */ char *name; /* UCSC genome: dbDb name or GenArk/NCBI accession */ unsigned *priority; /* assigned search priority */ char *commonName; /* a common name */ char *scientificName; /* binomial scientific name */ unsigned *taxId; /* Entrez taxon ID: www.ncbi.nlm.nih.gov/taxonomy/?term=xxx */ char *clade; /* approximate clade: primates mammals birds fish ... etc ... */ char *description; /* other description text */ unsigned char *browserExists; /* 1 == this assembly is available at UCSC, 0 == can be requested */ char *hubUrl; /* path name to hub.txt: GCF/000/001/405/GCF_000001405.39/hub.txt */ unsigned *year; /* year of assembly construction */ char *refSeqCategory; /* one of: reference, representative or na */ char *versionStatus; /* one of: latest, replaced or suppressed */ char *assemblyLevel; /* one of: complete, chromosome, scaffold or contig */ }; void assemblyListStaticLoadWithNull(char **row, struct assemblyList *ret); /* Load a row from assemblyList table into ret. The contents of ret will * be replaced at the next call to this function. */ struct assemblyList *assemblyListLoadByQuery(struct sqlConnection *conn, char *query); /* Load all assemblyList from table that satisfy the query given. * Where query is of the form 'select * from example where something=something' * or 'select example.* from example, anotherTable where example.something = * anotherTable.something'. * Dispose of this with assemblyListFreeList(). */ void assemblyListSaveToDb(struct sqlConnection *conn, struct assemblyList *el, char *tableName, int updateSize); /* Save assemblyList as a row to the table specified by tableName. * As blob fields may be arbitrary size updateSize specifies the approx size * of a string that would contain the entire query. Arrays of native types are * converted to comma separated strings and loaded as such, User defined types are * inserted as NULL. This function automatically escapes quoted strings for mysql. */ struct assemblyList *assemblyListLoadWithNull(char **row); /* Load a assemblyList from row fetched with select * from assemblyList * from database. Dispose of this with assemblyListFree(). */ struct assemblyList *assemblyListLoadAll(char *fileName); /* Load all assemblyList from whitespace-separated file. * Dispose of this with assemblyListFreeList(). */ struct assemblyList *assemblyListLoadAllByChar(char *fileName, char chopper); /* Load all assemblyList from chopper separated file. * Dispose of this with assemblyListFreeList(). */ #define assemblyListLoadAllByTab(a) assemblyListLoadAllByChar(a, '\t'); /* Load all assemblyList from tab separated file. * Dispose of this with assemblyListFreeList(). */ struct assemblyList *assemblyListCommaIn(char **pS, struct assemblyList *ret); /* Create a assemblyList out of a comma separated string. * This will fill in ret if non-null, otherwise will * return a new assemblyList */ void assemblyListFree(struct assemblyList **pEl); /* Free a single dynamically allocated assemblyList such as created * with assemblyListLoad(). */ void assemblyListFreeList(struct assemblyList **pList); /* Free a list of dynamically allocated assemblyList's */ void assemblyListOutput(struct assemblyList *el, FILE *f, char sep, char lastSep); /* Print out assemblyList. Separate fields with sep. Follow last field with lastSep. */ #define assemblyListTabOut(el,f) assemblyListOutput(el,f,'\t','\n'); /* Print out assemblyList as a line in a tab-separated file. */ #define assemblyListCommaOut(el,f) assemblyListOutput(el,f,',',','); /* Print out assemblyList as a comma separated list including final comma. */ void assemblyListJsonOutput(struct assemblyList *el, FILE *f); /* Print out assemblyList in JSON format. */ /* -------------------------------- End autoSql Generated Code -------------------------------- */ #define defaultAssemblyListTableName "assemblyList" /* Name of table that maintains the list of all assemblies, whether * available here or could be built */ #define assemblyListTableConfVariable "hub.assemblyListTableName" /* the name of the hg.conf variable to use something other than the default */ char *assemblyListTableName(); /* return the assemblyList table name from the environment, * or hg.conf, or use the default. Cache the result */ +char *asmListMatchAllWords(char *searchString); +/* given a multiple word search string, fix it up so it will be + * a 'match all words' MySQL FULLTEXT query, with the required + signs + * in front of the words when appropriate + */ + #endif /* ASSEMBLYLIST_H */