64cf5265a375948af55b9237cd3fd91f8749f0e2 kent Sat Jan 30 08:56:53 2021 -0800 Making facetFieldsFromFieldedTable return the subtable that it has selected out, which is a bit more useful. diff --git src/hg/inc/facetField.h src/hg/inc/facetField.h index b5be732..f65907f 100644 --- src/hg/inc/facetField.h +++ src/hg/inc/facetField.h @@ -1,18 +1,22 @@ #ifndef FACETFIELD_H #define FACETFIELD_H +#ifndef FIELDEDTABLE +#include "fieldedTable.h" +#endif + struct facetVal /* Keep track of number of uses of a field value */ { struct facetVal *next; /* Next in list */ char *val; /* Value, not allocated here */ int useCount; /* Number of times this value used */ boolean selected; /* Selected value, true if selected. * if no value has been selected = ALL are selected */ int selectCount; /* Number of times this value used if selected. */ }; struct facetField /* Keeps track of number of uses and unique values of a field */ { struct facetField *next; /* Next in list */ @@ -46,26 +50,26 @@ boolean perRowFacetFields(int fieldCount, char **row, char *nullVal, struct facetField *ffArray[]); /* Process each row of a resultset updating use and select counts. * Returns TRUE if row passes selected facet values filter and should be included in the final result set. */ struct facetField *facetFieldsFromSqlTableInit(char *fields[], int fieldCount, char *selectedFields, struct facetField *ffArray[]); /* Initialize ffList and ffArray and selected facet values */ void facetFieldsFromSqlTableFinish(struct facetField *ffList, int (*compare )(const void *elem1, const void *elem2)); /* Do final cleanup after passing over rows */ struct facetField *facetFieldsFromSqlTable(struct sqlConnection *conn, char *table, char *fields[], int fieldCount, char *nullVal, char *where, char *selectedFields, int *pSelectedRowCount); /* Return a list of facetField, one for each field of given table */ -struct facetField *facetFieldsFromFieldedTable(struct fieldedTable *ft, char *selectedFields, - struct facetField *ffArray[], int *retSelectedRowCount); +struct fieldedTable *facetFieldsFromFieldedTable(struct fieldedTable *ft, char *selectedFields, + struct facetField *ffArray[]); /* Return a list of facetField, one for each selected field of given table. It'll * scan through table to do this and optionally you can get the count of selected rows. */ struct facetVal *facetValMajorPlusOther(struct facetVal *list, double minRatio); /* Return a list of only the tags that are over minRatio of total tags. * If there are tags that have smaller amounts than this, lump them together * under "other". Returns a new list. Use slFreeList() to free the result. */ #endif /* FACETFIELD_H */