src/utils/raSqlQuery/raSqlQuery.c 1.25
1.25 2009/12/02 19:11:54 kent
Librarifying RQL parser and interpreter.
Index: src/utils/raSqlQuery/raSqlQuery.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/utils/raSqlQuery/raSqlQuery.c,v
retrieving revision 1.24
retrieving revision 1.25
diff -b -B -U 4 -r1.24 -r1.25
--- src/utils/raSqlQuery/raSqlQuery.c 26 Nov 2009 00:39:06 -0000 1.24
+++ src/utils/raSqlQuery/raSqlQuery.c 2 Dec 2009 19:11:54 -0000 1.25
@@ -279,8 +279,19 @@
return recordList;
}
}
+static char *lookupField(void *record, char *key)
+/* Lookup a field in a raRecord. */
+{
+struct raRecord *ra = record;
+struct raField *field = raRecordField(ra, key);
+if (field == NULL)
+ return NULL;
+else
+ return field->val;
+}
+
boolean rqlStatementMatch(struct rqlStatement *rql, struct raRecord *ra)
/* Return TRUE if where clause and tableList in statement evaluates true for ra. */
{
if (rql->tableList != NULL)
@@ -308,9 +319,9 @@
if (whereClause == NULL)
return TRUE;
else
{
- struct rqlEval res = rqlEvalOnRecord(whereClause, ra);
+ struct rqlEval res = rqlEvalOnRecord(whereClause, ra, lookupField);
res = rqlEvalCoerceToBoolean(res);
return res.val.b;
}
}