[Checkins] SVN: Sandbox/adamg/ocql/trunk/src/ocql/ fixing algebra representation for alias, still fail tests for their execution
Charith Paranaliyanage
paranaliyanage at gmail.com
Mon Aug 25 22:06:03 EDT 2008
Log message for revision 90256:
fixing algebra representation for alias, still fail tests for their execution
Changed:
U Sandbox/adamg/ocql/trunk/src/ocql/aoptimizer/aoptimizer.txt
U Sandbox/adamg/ocql/trunk/src/ocql/queryobject/queryobject.py
U Sandbox/adamg/ocql/trunk/src/ocql/rewriter/algebra.py
U Sandbox/adamg/ocql/trunk/src/ocql/rewriter/rewriter.txt
U Sandbox/adamg/ocql/trunk/src/ocql/tests/functions.txt
U Sandbox/adamg/ocql/trunk/src/ocql/tests/test_zope.py
-=-
Modified: Sandbox/adamg/ocql/trunk/src/ocql/aoptimizer/aoptimizer.txt
===================================================================
--- Sandbox/adamg/ocql/trunk/src/ocql/aoptimizer/aoptimizer.txt 2008-08-26 01:20:35 UTC (rev 90255)
+++ Sandbox/adamg/ocql/trunk/src/ocql/aoptimizer/aoptimizer.txt 2008-08-26 02:06:01 UTC (rev 90256)
@@ -127,7 +127,7 @@
>>> algopt
Head(Iter(<type 'set'>,
Lambda i: Single(<type 'set'>, i.name),
- MakeFromIndex(<type 'set'>, <type 'set'>, IOptimizedClass, value, 5)))
+ MakeFromIndex(<type 'set'>, <type 'set'>, IOptimizedClass, value, ==, 5)))
Modified: Sandbox/adamg/ocql/trunk/src/ocql/queryobject/queryobject.py
===================================================================
--- Sandbox/adamg/ocql/trunk/src/ocql/queryobject/queryobject.py 2008-08-26 01:20:35 UTC (rev 90255)
+++ Sandbox/adamg/ocql/trunk/src/ocql/queryobject/queryobject.py 2008-08-26 02:06:01 UTC (rev 90256)
@@ -288,22 +288,27 @@
def get_class(self):
t = self.left.get_class()
-
return t
def get_collection_type(self):
+ t = self.left.get_class()
if isinstance(self.right, Identifier):
- t = self.left.get_class()
try:
r = t[self.right.name]
except:
from pub.dbgpclient import brk; brk()
#print self.left.name+'.'+self.right.name,r
- return r
-
else:
- return self.right.get_collection_type()
+ try:
+ r = t[self.right.left.name]
+ except:
+ from pub.dbgpclient import brk; brk()
+
+ return r
+ #else:
+ # return self.right.get_collection_type()
+
class Index(Binary):
#NotImplementedError
implements(IIndex)
Modified: Sandbox/adamg/ocql/trunk/src/ocql/rewriter/algebra.py
===================================================================
--- Sandbox/adamg/ocql/trunk/src/ocql/rewriter/algebra.py 2008-08-26 01:20:35 UTC (rev 90255)
+++ Sandbox/adamg/ocql/trunk/src/ocql/rewriter/algebra.py 2008-08-26 02:06:01 UTC (rev 90256)
@@ -192,8 +192,8 @@
self.setProp('value', value)
def __repr__(self):
- return "MakeFromIndex(%s, %s, %s, %s, %s)" % (
- self.coll1, self.coll2, self.expr1, self.expr2, self.value)
+ return "MakeFromIndex(%s, %s, %s, %s, %s, %s)" % (
+ self.coll1, self.coll2, self.expr1, self.expr2, self.operator, self.value)
#class And:
Modified: Sandbox/adamg/ocql/trunk/src/ocql/rewriter/rewriter.txt
===================================================================
--- Sandbox/adamg/ocql/trunk/src/ocql/rewriter/rewriter.txt 2008-08-26 01:20:35 UTC (rev 90255)
+++ Sandbox/adamg/ocql/trunk/src/ocql/rewriter/rewriter.txt 2008-08-26 02:06:01 UTC (rev 90256)
@@ -157,8 +157,18 @@
Head(Reduce(<type 'set'>, `0`, Lambda i: `1`, +, Iter(<type 'set'>, Lambda i: Single(<type 'set'>, i), Make(<type 'set'>, <type 'set'>, IStaff))) /
Reduce(<type 'set'>, `0`, Lambda i: `1`, +, Iter(<type 'set'>, Lambda j: Single(<type 'set'>, j), Make(<type 'set'>, <type 'set'>, IVisitingStaff))))
+ >>> qo = QueryParser("set [ c in ICourse; a as c.credits; a > 3 | c.code ]")(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.credits)),
+ Make(<type 'set'>, <type 'set'>, ICourse)))
+
>>> qo = QueryParser("set [ s in IStudent; a as s.major.address.street; a=='Hillhead Street' | s ]")(TestMetadata())
>>> opt = QueryOptimizer(qo)()
>>> alg = Rewriter(opt)()
>>> print str(alg)
- Head(???)
+ Head(Iter(<type 'set'>, Lambda s:
+ Iter(<type 'set'>, Lambda a: Single(<type 'set'>, a), Single(<type 'set'>, s.major.address.street)),
+ Make(<type 'set'>, <type 'set'>, IStudent)))
Modified: Sandbox/adamg/ocql/trunk/src/ocql/tests/functions.txt
===================================================================
--- Sandbox/adamg/ocql/trunk/src/ocql/tests/functions.txt 2008-08-26 01:20:35 UTC (rev 90255)
+++ Sandbox/adamg/ocql/trunk/src/ocql/tests/functions.txt 2008-08-26 02:06:01 UTC (rev 90256)
@@ -125,6 +125,14 @@
set([Staff <S1>])
Sample from the presentation:
+ >>> engine.compile("set [ c in ICourse; a as c.credits; a > 2 | c ]").execute()
+ set([Course <C2>], Course <C3>])
+
+Sample from the presentation:
+ >>> engine.compile("set [ s in IStudent; a as s.major.address.street; a=='Hillhead Street' | s ]").execute()
+ Student2
+
+Sample from the presentation:
>>> engine.compile("set [ s in IStudent; a as s.major.address.street; a=='Hillhead Street' or a=='Gibson Street' | s ]").execute()
Student1, Student2
Modified: Sandbox/adamg/ocql/trunk/src/ocql/tests/test_zope.py
===================================================================
--- Sandbox/adamg/ocql/trunk/src/ocql/tests/test_zope.py 2008-08-26 01:20:35 UTC (rev 90255)
+++ Sandbox/adamg/ocql/trunk/src/ocql/tests/test_zope.py 2008-08-26 02:06:01 UTC (rev 90256)
@@ -162,7 +162,7 @@
#
# set [ c in IStudent , c.country="USA" | c.name]
#
- query = "[c in IStudent , c.country=USA | c.name]"
+ query = "[c in IStudent , c.country==USA | c.name]"
qo = Head(Query(
metadata, symbols,
set,
More information about the Checkins
mailing list