[Checkins] SVN: Sandbox/adamg/ocql/trunk/src/ocql/ add test to improve coverage

Charith Paranaliyanage paranaliyanage at gmail.com
Mon Aug 18 15:12:51 EDT 2008


Log message for revision 89977:
  add test to improve coverage

Changed:
  U   Sandbox/adamg/ocql/trunk/src/ocql/parser/parser.txt
  U   Sandbox/adamg/ocql/trunk/src/ocql/parser/queryparser.py
  U   Sandbox/adamg/ocql/trunk/src/ocql/queryobject/queryobject.py
  U   Sandbox/adamg/ocql/trunk/src/ocql/rewriter/rewriter.txt

-=-
Modified: Sandbox/adamg/ocql/trunk/src/ocql/parser/parser.txt
===================================================================
--- Sandbox/adamg/ocql/trunk/src/ocql/parser/parser.txt	2008-08-18 18:13:39 UTC (rev 89976)
+++ Sandbox/adamg/ocql/trunk/src/ocql/parser/parser.txt	2008-08-18 19:12:50 UTC (rev 89977)
@@ -47,5 +47,17 @@
     >>> QueryParser("list [ c in ICourse; c.credits > 3 | c.code ]")(None)
     Query(<type 'list'>, In(Identifier(c), Identifier(ICourse)); Gt(Property(Identifier(c), Identifier(credits)), Constant(3)), Property(Identifier(c), Identifier(code)))
 
+    >>> QueryParser("set [ c in ICourse; c.credits >= 3 | c.code ]")(None)
+    Query(<type 'set'>, In(Identifier(c), Identifier(ICourse)); Ge(Property(Identifier(c), Identifier(credits)), Constant(3)), Property(Identifier(c), Identifier(code)))
+    
+    >>> QueryParser("set [ c in ICourse; c.credits < 3 | c.code ]")(None)
+    Query(<type 'set'>, In(Identifier(c), Identifier(ICourse)); Lt(Property(Identifier(c), Identifier(credits)), Constant(3)), Property(Identifier(c), Identifier(code)))
+
+    >>> QueryParser("set [ c in ICourse; c.credits <= 3 | c.code ]")(None)
+    Query(<type 'set'>, In(Identifier(c), Identifier(ICourse)); Le(Property(Identifier(c), Identifier(credits)), Constant(3)), Property(Identifier(c), Identifier(code)))
+
     >>> QueryParser("set [ c in ICourse | c.code ]")(None)
     Query(<type 'set'>, In(Identifier(c), Identifier(ICourse)), Property(Identifier(c), Identifier(code)))
+
+    >>> QueryParser("set [ c in ICourse; a as c.code | a]")(None)
+    Query(<type 'set'>, In(Identifier(c), Identifier(ICourse)); Alias(Identifier(a), Property(Identifier(c), Identifier(code))), Identifier(a))

Modified: Sandbox/adamg/ocql/trunk/src/ocql/parser/queryparser.py
===================================================================
--- Sandbox/adamg/ocql/trunk/src/ocql/parser/queryparser.py	2008-08-18 18:13:39 UTC (rev 89976)
+++ Sandbox/adamg/ocql/trunk/src/ocql/parser/queryparser.py	2008-08-18 19:12:50 UTC (rev 89977)
@@ -171,10 +171,18 @@
         r'!='
         return t
 
+    def t_LTE(self, t):
+        r'<='
+        return t
+
     def t_LT(self, t):
         r'<'
         return t
 
+    def t_GTE(self, t):
+        r'>='
+        return t
+
     def t_GT(self, t):
         r'>'
         return t
@@ -207,14 +215,6 @@
         r'=='
         return t
 
-    def t_GTE(self, t):
-        r'>='
-        return t
-
-    def t_LTE(self, t):
-        r'<='
-        return t
-
     def t_SEMI_COLON(self, t):
         r';'
         return t
@@ -522,7 +522,9 @@
     def p_definition_as(self, t):
         r'''definition : IDENTIFIER AS expression
         '''
-        #t[0]=''
+        t[0] = Alias(self.metadata, self.symbols, 
+                     Identifier(self.metadata, self.symbols, t[1]),
+                     t[3])
         if DEBUG: print 'reducing "IDENTIFIER AS expression" to "definition"', t[0]
 
     def p_literal_constant(self, t):

Modified: Sandbox/adamg/ocql/trunk/src/ocql/queryobject/queryobject.py
===================================================================
--- Sandbox/adamg/ocql/trunk/src/ocql/queryobject/queryobject.py	2008-08-18 18:13:39 UTC (rev 89976)
+++ Sandbox/adamg/ocql/trunk/src/ocql/queryobject/queryobject.py	2008-08-18 19:12:50 UTC (rev 89977)
@@ -229,7 +229,7 @@
         #TODO: that's not really good
         r = self.expression.get_collection_type()
 
-        s[self.identifier.name] = r
+        s[self.identifier] = r
 
     def get_collection_type(self):
         rv = self.expression.get_collection_type()

Modified: Sandbox/adamg/ocql/trunk/src/ocql/rewriter/rewriter.txt
===================================================================
--- Sandbox/adamg/ocql/trunk/src/ocql/rewriter/rewriter.txt	2008-08-18 18:13:39 UTC (rev 89976)
+++ Sandbox/adamg/ocql/trunk/src/ocql/rewriter/rewriter.txt	2008-08-18 19:12:50 UTC (rev 89977)
@@ -86,3 +86,27 @@
     >>> alg = Rewriter(opt)()
     >>> print str(alg)
     Head(Iter(<type 'set'>, Lambda c: If(c.credits>`3`, Single(<type 'set'>, c.code), Empty(<type 'set'>)), Make(<type 'set'>, <type 'set'>, ICourse)))
+
+    >>> qo = QueryParser("set [ c in ICourse; c.credits>=3 | c.code ]")(TestMetadata())
+    >>> opt = QueryOptimizer(qo)()
+    >>> alg = Rewriter(opt)()
+    >>> print str(alg)
+    Head(Iter(<type 'set'>, Lambda c: If(c.credits>=`3`, Single(<type 'set'>, c.code), Empty(<type 'set'>)), Make(<type 'set'>, <type 'set'>, ICourse)))
+
+    >>> qo = QueryParser("set [ c in ICourse; c.credits<3 | c.code ]")(TestMetadata())
+    >>> opt = QueryOptimizer(qo)()
+    >>> alg = Rewriter(opt)()
+    >>> print str(alg)
+    Head(Iter(<type 'set'>, Lambda c: If(c.credits<`3`, Single(<type 'set'>, c.code), Empty(<type 'set'>)), Make(<type 'set'>, <type 'set'>, ICourse)))
+
+    >>> qo = QueryParser("set [ c in ICourse; c.credits<=3 | c.code ]")(TestMetadata())
+    >>> opt = QueryOptimizer(qo)()
+    >>> alg = Rewriter(opt)()
+    >>> print str(alg)
+    Head(Iter(<type 'set'>, Lambda c: If(c.credits<=`3`, Single(<type 'set'>, c.code), Empty(<type 'set'>)), Make(<type 'set'>, <type 'set'>, ICourse)))
+
+    >>> qo = QueryParser("set [ c in ICourse; a as c.code | a ]")(TestMetadata())
+    >>> opt = QueryOptimizer(qo)()
+    >>> alg = Rewriter(opt)()
+    >>> print str(alg)
+    Head(Iter(<type 'set'>, Lambda c: Iter(<type 'set'>, Lambda a: Single(<type 'set'>, a), Single(<type 'set'>, c.code)), Make(<type 'set'>, <type 'set'>, ICourse)))



More information about the Checkins mailing list