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 */