[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