src/utils/raSqlQuery/rqlParse.c 1.5
1.5 2009/11/22 02:45:33 kent
Letting 'select count(*)' be a synonym for 'count'
Index: src/utils/raSqlQuery/rqlParse.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/utils/raSqlQuery/rqlParse.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -b -B -U 4 -r1.4 -r1.5
--- src/utils/raSqlQuery/rqlParse.c 22 Nov 2009 02:11:09 -0000 1.4
+++ src/utils/raSqlQuery/rqlParse.c 22 Nov 2009 02:45:33 -0000 1.5
@@ -534,8 +534,28 @@
{
struct dyString *buf = dyStringNew(0);
struct slName *list = NULL;
char *tok = rqlParseFieldSpec(tkz, buf);
+ /* Look for count(*) as special case. */
+ boolean countOnly = FALSE;
+ if (sameString(tok, "count"))
+ {
+ char *paren = tokenizerNext(tkz);
+ if (paren[0] == '(')
+ {
+ skipOverRequired(tkz, "*");
+ skipOverRequired(tkz, ")");
+ countOnly = TRUE;
+ freez(&rql->command);
+ rql->command = cloneString("count");
+ }
+ else
+ {
+ tokenizerReuse(tkz);
+ }
+ }
+ if (!countOnly)
+ {
list = slNameNew(tok);
for (;;)
{
/* Parse out comma-separated field list. */
@@ -548,8 +568,9 @@
slNameAddHead(&list, rqlParseFieldSpec(tkz, buf));
}
slReverse(&list);
rql->fieldList = list;
+ }
dyStringFree(&buf);
}
else if (sameString(rql->command, "count"))
{