[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