src/lib/rqlParse.c 1.6

1.6 2009/12/03 20:05:24 kent
Adding lm parameter to rqlEvalOnRecord since array operation uses memory.
Index: src/lib/rqlParse.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/lib/rqlParse.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -b -B -U 4 -r1.5 -r1.6
--- src/lib/rqlParse.c	3 Dec 2009 19:26:04 -0000	1.5
+++ src/lib/rqlParse.c	3 Dec 2009 20:05:24 -0000	1.6
@@ -67,10 +67,8 @@
         return "rqlOpUnaryMinusDouble";
 
     case rqlOpArrayIx:
         return "rqlOpArrayIx";
-    case rqlOpSubDot:
-        return "rqlSubDot";
 
     default:
 	return "rqlOpUnknown";
     }
@@ -279,10 +277,10 @@
     return cast;
     }
 }
 
-static struct rqlParse *rqlParsePartSelect(struct tokenizer *tkz)
-/* Handle the . in this.that or the [] in this[6] */
+static struct rqlParse *rqlParseIndex(struct tokenizer *tkz)
+/* Handle the [] in this[6] */
 {
 struct rqlParse *collection = rqlParseAtom(tkz);
 struct rqlParse *p = collection;
 char *tok = tokenizerNext(tkz);
@@ -299,18 +297,8 @@
     p->type = rqlTypeString;
     p->children = collection;
     collection->next = index;
     }
-else if (tok[0] == '.')
-    {
-    struct rqlParse *field = rqlParseExpression(tkz);
-    field = rqlParseCoerce(field, rqlTypeString);
-    AllocVar(p);
-    p->op = rqlOpSubDot;
-    p->type = rqlTypeString;
-    p->children = collection;
-    collection->next = field;
-    }
 else
     tokenizerReuse(tkz);
 return p;
 }
@@ -321,9 +309,9 @@
 {
 char *tok = tokenizerMustHaveNext(tkz);
 if (tok[0] == '-')
     {
-    struct rqlParse *c = rqlParsePartSelect(tkz);
+    struct rqlParse *c = rqlParseIndex(tkz);
     struct rqlParse *p;
     AllocVar(p);
     if (c->type == rqlTypeInt)
         {
@@ -341,9 +329,9 @@
     }
 else
     {
     tokenizerReuse(tkz);
-    return rqlParsePartSelect(tkz);
+    return rqlParseIndex(tkz);
     }
 }
 
 static boolean eatMatchingTok(struct tokenizer *tkz, char *s)