[Checkins] SVN: Sandbox/adamg/ocql/trunk/src/ocql/ sanitizing IF names

Adam Groszer agroszer at gmail.com
Mon Aug 25 09:53:47 EDT 2008


Log message for revision 90209:
  sanitizing IF names

Changed:
  U   Sandbox/adamg/ocql/trunk/src/ocql/parser/parser.txt
  U   Sandbox/adamg/ocql/trunk/src/ocql/rewriter/rewriter.txt
  U   Sandbox/adamg/ocql/trunk/src/ocql/testing/database.py
  U   Sandbox/adamg/ocql/trunk/src/ocql/tests/functions.txt
  U   Sandbox/adamg/ocql/trunk/src/ocql/tests/test_old.py

-=-
Modified: Sandbox/adamg/ocql/trunk/src/ocql/parser/parser.txt
===================================================================
--- Sandbox/adamg/ocql/trunk/src/ocql/parser/parser.txt	2008-08-25 13:50:44 UTC (rev 90208)
+++ Sandbox/adamg/ocql/trunk/src/ocql/parser/parser.txt	2008-08-25 13:53:47 UTC (rev 90209)
@@ -54,8 +54,8 @@
     >>> QueryParser("len ( list [ i in ICourse | i ] )")(None)
     Head(Count(Query(<type 'list'>, In(Identifier(i), Identifier(ICourse)), Identifier(i))))
 
-    >>> QueryParser("set [ d in IDepartments; every set [ c in ICourse; some c.runBy == d | c.credits ] == 2 | d.name ]")(None)
-    Head(Query(<type 'set'>, In(Identifier(d), Identifier(IDepartments));
+    >>> QueryParser("set [ d in IDepartment; every set [ c in ICourse; some c.runBy == d | c.credits ] == 2 | d.name ]")(None)
+    Head(Query(<type 'set'>, In(Identifier(d), Identifier(IDepartment));
     Eq((Every, Query(<type 'set'>, In(Identifier(c), Identifier(ICourse));
     Eq((Some, Property(Identifier(c), Identifier(runBy))), Identifier(d)), Property(Identifier(c), Identifier(credits)))),
     Constant(2)), Property(Identifier(d), Identifier(name))))
@@ -96,41 +96,41 @@
     >>> QueryParser("set [ c in ICourse; a as c.name; a=='C1' | c]")(None)
     Head(Query(<type 'set'>, In(Identifier(c), Identifier(ICourse)); Alias(Identifier(a), Property(Identifier(c), Identifier(name))); Eq(Identifier(a), Constant('C1')), Identifier(c)))
 
-    >>> QueryParser("set [ s in IStudents; a as s.major.address.street; a=='Hillhead Street' or a=='Gibson Street' | s ]")(None)
-    Head(Query(<type 'set'>, In(Identifier(s), Identifier(IStudents));
+    >>> QueryParser("set [ s in IStudent; a as s.major.address.street; a=='Hillhead Street' or a=='Gibson Street' | s ]")(None)
+    Head(Query(<type 'set'>, In(Identifier(s), Identifier(IStudent));
     Alias(Identifier(a), Property(Identifier(s), Property(Identifier(major), Property(Identifier(address), Identifier(street)))));
     Or(Eq(Identifier(a), Constant('Hillhead Street')), Eq(Identifier(a), Constant('Gibson Street'))), Identifier(s)))
 
     >>> QueryParser("set [ i in IPerson; isinstance(i, Tutor) | i ]")(None)
     Head(Query(<type 'set'>, In(Identifier(i), Identifier(IPerson)); Isinstance(Identifier(i), Tutor), Identifier(i)))
 
-    >>> QueryParser("set [ s in Staff; set [st in IStudents; some st.takes == atleast 2 s.teaches | st.name] == 'St1' | i.name ]")(None)
-    Head(Query(<type 'set'>, In(Identifier(s), Identifier(Staff)); Eq(Query(<type 'set'>, In(Identifier(st), Identifier(IStudents)); 
-    Eq((Some, Property(Identifier(st), Identifier(takes))), (Atleast(2, Property(Identifier(s), Identifier(teaches))))), 
+    >>> QueryParser("set [ s in Staff; set [st in IStudent; some st.takes == atleast 2 s.teaches | st.name] == 'St1' | i.name ]")(None)
+    Head(Query(<type 'set'>, In(Identifier(s), Identifier(Staff)); Eq(Query(<type 'set'>, In(Identifier(st), Identifier(IStudent));
+    Eq((Some, Property(Identifier(st), Identifier(takes))), (Atleast(2, Property(Identifier(s), Identifier(teaches))))),
     Property(Identifier(st), Identifier(name))), Constant('St1')), Property(Identifier(i), Identifier(name))))
 
-    >>> QueryParser("set [ s in Staff; set [st in IStudents; some st.takes == just 2 s.teaches | st.name] == 'St1' | i.name ]")(None)
-    Head(Query(<type 'set'>, In(Identifier(s), Identifier(Staff)); Eq(Query(<type 'set'>, In(Identifier(st), Identifier(IStudents)); 
-    Eq((Some, Property(Identifier(st), Identifier(takes))), (Just(2, Property(Identifier(s), Identifier(teaches))))), 
+    >>> QueryParser("set [ s in Staff; set [st in IStudent; some st.takes == just 2 s.teaches | st.name] == 'St1' | i.name ]")(None)
+    Head(Query(<type 'set'>, In(Identifier(s), Identifier(Staff)); Eq(Query(<type 'set'>, In(Identifier(st), Identifier(IStudent));
+    Eq((Some, Property(Identifier(st), Identifier(takes))), (Just(2, Property(Identifier(s), Identifier(teaches))))),
     Property(Identifier(st), Identifier(name))), Constant('St1')), Property(Identifier(i), Identifier(name))))
 
-    >>> QueryParser("set [ s in Staff; set [st in IStudents; some st.takes == atmost 2 s.teaches | st.name] == 'St1' | i.name ]")(None)
-    Head(Query(<type 'set'>, In(Identifier(s), Identifier(Staff)); Eq(Query(<type 'set'>, In(Identifier(st), Identifier(IStudents)); 
-    Eq((Some, Property(Identifier(st), Identifier(takes))), (Atmost(2, Property(Identifier(s), Identifier(teaches))))), 
+    >>> QueryParser("set [ s in Staff; set [st in IStudent; some st.takes == atmost 2 s.teaches | st.name] == 'St1' | i.name ]")(None)
+    Head(Query(<type 'set'>, In(Identifier(s), Identifier(Staff)); Eq(Query(<type 'set'>, In(Identifier(st), Identifier(IStudent));
+    Eq((Some, Property(Identifier(st), Identifier(takes))), (Atmost(2, Property(Identifier(s), Identifier(teaches))))),
     Property(Identifier(st), Identifier(name))), Constant('St1')), Property(Identifier(i), Identifier(name))))
 
     >>> QueryParser("len ( set [ i in IStaff | i ] ) + len ( set [ j in IVisitingStaff | j ] )")(None)
-    Head(Add(Count(Query(<type 'set'>, In(Identifier(i), Identifier(IStaff)), Identifier(i))), 
+    Head(Add(Count(Query(<type 'set'>, In(Identifier(i), Identifier(IStaff)), Identifier(i))),
     Count(Query(<type 'set'>, In(Identifier(j), Identifier(IVisitingStaff)), Identifier(j)))))
 
     >>> QueryParser("len ( set [ i in IStaff | i ] ) - len ( set [ j in IVisitingStaff | j ] )")(None)
-    Head(Sub(Count(Query(<type 'set'>, In(Identifier(i), Identifier(IStaff)), Identifier(i))), 
+    Head(Sub(Count(Query(<type 'set'>, In(Identifier(i), Identifier(IStaff)), Identifier(i))),
     Count(Query(<type 'set'>, In(Identifier(j), Identifier(IVisitingStaff)), Identifier(j)))))
 
     >>> QueryParser("len ( set [ i in IStaff | i ] ) * len ( set [ j in IVisitingStaff | j ] )")(None)
-    Head(Mul(Count(Query(<type 'set'>, In(Identifier(i), Identifier(IStaff)), Identifier(i))), 
+    Head(Mul(Count(Query(<type 'set'>, In(Identifier(i), Identifier(IStaff)), Identifier(i))),
     Count(Query(<type 'set'>, In(Identifier(j), Identifier(IVisitingStaff)), Identifier(j)))))
 
     >>> QueryParser("len ( set [ i in IStaff | i ] ) / len ( set [ j in IVisitingStaff | j ] )")(None)
-    Head(Div(Count(Query(<type 'set'>, In(Identifier(i), Identifier(IStaff)), Identifier(i))), 
+    Head(Div(Count(Query(<type 'set'>, In(Identifier(i), Identifier(IStaff)), Identifier(i))),
     Count(Query(<type 'set'>, In(Identifier(j), Identifier(IVisitingStaff)), Identifier(j)))))

Modified: Sandbox/adamg/ocql/trunk/src/ocql/rewriter/rewriter.txt
===================================================================
--- Sandbox/adamg/ocql/trunk/src/ocql/rewriter/rewriter.txt	2008-08-25 13:50:44 UTC (rev 90208)
+++ Sandbox/adamg/ocql/trunk/src/ocql/rewriter/rewriter.txt	2008-08-25 13:53:47 UTC (rev 90209)
@@ -117,11 +117,11 @@
     >>> print str(alg)
     Head(Iter(<type 'set'>, Lambda c: If(Not(<type 'set'>, c.code == `2` or c.code == `3`), Single(<type 'set'>, c), Empty(<type 'set'>)), Make(<type 'set'>, <type 'set'>, ICourse)))
 
-    >>> qo = QueryParser("set [ s in IStudents; s.major.address.street == 'Hillhead Street' | s ]")(TestMetadata())
+    >>> qo = QueryParser("set [ s in IStudent; s.major.address.street == 'Hillhead Street' | s ]")(TestMetadata())
     >>> opt = QueryOptimizer(qo)()
     >>> alg = Rewriter(opt)()
     >>> print str(alg)
-    Head(Iter(<type 'set'>, Lambda s: If(s.major.address.street == `'Hillhead Street'`, Single(<type 'set'>, s), Empty(<type 'set'>)), Make(<type 'set'>, <type 'set'>, IStudents)))
+    Head(Iter(<type 'set'>, Lambda s: If(s.major.address.street == `'Hillhead Street'`, Single(<type 'set'>, s), Empty(<type 'set'>)), Make(<type 'set'>, <type 'set'>, IStudent)))
 
     >>> qo = QueryParser("set [ c in ICourse; c.credits == 2 and c.code == 'C1' | c ]")(TestMetadata())
     >>> opt = QueryOptimizer(qo)()
@@ -157,7 +157,7 @@
     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 [ s in IStudents; a as s.major.address.street; a=='Hillhead Street' | s ]")(TestMetadata())
+    >>> 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)

Modified: Sandbox/adamg/ocql/trunk/src/ocql/testing/database.py
===================================================================
--- Sandbox/adamg/ocql/trunk/src/ocql/testing/database.py	2008-08-25 13:50:44 UTC (rev 90208)
+++ Sandbox/adamg/ocql/trunk/src/ocql/testing/database.py	2008-08-25 13:53:47 UTC (rev 90209)
@@ -15,7 +15,7 @@
         required=True
         )
 
-class IDepartments(Interface):
+class IDepartment(Interface):
     name = TextLine(
         title=u"name",
         required=True
@@ -77,7 +77,7 @@
         title=u"Name",
         )
 
-class IStudents(IPerson):
+class IStudent(IPerson):
     major = Choice(
         title=u"Department",
         vocabulary="vocab_of_IDepartment",
@@ -97,7 +97,7 @@
             )
         )
 
-class ITutors(IStaff, IStudents):
+class ITutor(IStaff, IStudent):
     pass
 
 class IVisitingStaff(IStaff):
@@ -116,7 +116,7 @@
         )
 
 class Department(object):
-    implements(IDepartments)
+    implements(IDepartment)
 
     def __init__(self, name, address):
         self.name = name
@@ -167,7 +167,7 @@
 
 
 class Student(Person):
-    implements(IStudents)
+    implements(IStudent)
 
     def __init__(self, name, major, supervisedBy, takes):
         self.name= name
@@ -176,7 +176,7 @@
         self.takes = takes
 
 class Tutor(Staff, Student):
-    implements(ITutors)
+    implements(ITutor)
 
 class VisitingStaff(Staff):
     implements(IVisitingStaff)
@@ -209,22 +209,22 @@
 
     db = {
             'IAddress': [A1, A2],
-            'IDepartments': [D1, D2],
+            'IDepartment': [D1, D2],
             'ICourse': [C1, C2, C3],
             'IPerson': [S1, S2, St1, St2, T1, V1],
             'IStaff': [S1, S2],
-            'IStudents': [St1, St2],
-            'ITutors': [T1],
+            'IStudent': [St1, St2],
+            'ITutor': [T1],
             'IVisitingStaff': [V1]
         }
     classes = {
             'IAddress': MClass(IAddress),
-            'IDepartments': MClass(IDepartments),
+            'IDepartment': MClass(IDepartment),
             'ICourse': MClass(ICourse),
             'IPerson': MClass(IPerson),
             'IStaff': MClass(IStaff),
-            'IStudents': MClass(IStudents),
-            'ITutors': MClass(ITutors),
+            'IStudent': MClass(IStudent),
+            'ITutor': MClass(ITutor),
             'IVisitingStaff': MClass(IVisitingStaff),
             }
 

Modified: Sandbox/adamg/ocql/trunk/src/ocql/tests/functions.txt
===================================================================
--- Sandbox/adamg/ocql/trunk/src/ocql/tests/functions.txt	2008-08-25 13:50:44 UTC (rev 90208)
+++ Sandbox/adamg/ocql/trunk/src/ocql/tests/functions.txt	2008-08-25 13:53:47 UTC (rev 90209)
@@ -88,17 +88,17 @@
     [Course <C1>, Course <C2>, Course <C3>]
 
 Simple condition (eg where):
-    >>> engine.compile("list [ d in IDepartments; d.name == \"Computing Science\" | d  ]").execute()
+    >>> engine.compile("list [ d in IDepartment; d.name == \"Computing Science\" | d  ]").execute()
     [Department <Computing Science>]
 
 # FIXME: not working!
 # Join using existentially quantified expressions:
-#     >>> engine.compile("""list [ d in IDepartments; c in ICourse; d.name == "Computing Science"; d == some c.runBy | c  ]""").execute()
+#     >>> engine.compile("""list [ d in IDepartment; c in ICourse; d.name == "Computing Science"; d == some c.runBy | c  ]""").execute()
 #     set([Course <C1>, Course <C3>])
 
 # FIXME: not working!
 # Join using universally quantified expressions:
-#      >>> engine.compile("""list [ d in IDepartments; c in ICourse; d.name == "Computing Science"; d == every c.runBy | c  ]""").execute()
+#      >>> engine.compile("""list [ d in IDepartment; c in ICourse; d.name == "Computing Science"; d == every c.runBy | c  ]""").execute()
 #      set([Course <C3>])
 
 # FIXME: not working!
@@ -123,9 +123,9 @@
     set([Staff <S1>])
 
 Sample from the presentation:
-    >>> engine.compile("set [ s in IStudents; a as s.major.address.street; a=='Hillhead Street' or a=='Gibson Street' | s ]").execute()
+    >>> engine.compile("set [ s in IStudent; a as s.major.address.street; a=='Hillhead Street' or a=='Gibson Street' | s ]").execute()
     Student1, Student2
 
 More test ideas:
-engine.compile("""list [ d in IDepartments; c in ICourse; d == some c.runBy | list {d.name, c}  ]""").execute()
-engine.compile("""list [ d in IDepartments; | list {d, size set [ some c.runBy = d ; c in ICurses; c.credits <= 2 | c ] } ]""").execute()
+engine.compile("""list [ d in IDepartment; c in ICourse; d == some c.runBy | list {d.name, c}  ]""").execute()
+engine.compile("""list [ d in IDepartment; | list {d, size set [ some c.runBy = d ; c in ICurses; c.credits <= 2 | c ] } ]""").execute()

Modified: Sandbox/adamg/ocql/trunk/src/ocql/tests/test_old.py
===================================================================
--- Sandbox/adamg/ocql/trunk/src/ocql/tests/test_old.py	2008-08-25 13:50:44 UTC (rev 90208)
+++ Sandbox/adamg/ocql/trunk/src/ocql/tests/test_old.py	2008-08-25 13:53:47 UTC (rev 90209)
@@ -327,10 +327,10 @@
         #
         # join -- Departments running curses
         #
-        # set [ c in ICourse d, in IDepartments ,
+        # set [ c in ICourse d, in IDepartment ,
         # some c.runBy = d  | d.name ]
         #
-        query = "[ c in ICourse, d in IDepartments, d = some c.runBy | d.name  ]"
+        query = "[ c in ICourse, d in IDepartment, d = some c.runBy | d.name  ]"
         qo=Head(Query(
             metadata, symbols,
             set, [
@@ -341,7 +341,7 @@
                 In(
                     metadata, symbols,
                     Identifier(metadata, symbols,'d'),
-                    Identifier(metadata, symbols,'IDepartments')),
+                    Identifier(metadata, symbols,'IDepartment')),
                 Eq(
                     metadata, symbols,
                     Identifier(metadata, symbols,'d'),
@@ -362,7 +362,7 @@
         #
         # set [ d in ICourse, c in ICourse, c.credits=3, some c.runBy = d | d.name ]
         #
-        query = "[ c in ICourse, d in IDepartments, c.credits=3, d = some c.runBy | d.name  ]"
+        query = "[ c in ICourse, d in IDepartment, c.credits=3, d = some c.runBy | d.name  ]"
         qo=Head(Query(
             metadata, symbols,
             set,
@@ -374,7 +374,7 @@
                 In(
                     metadata, symbols,
                     Identifier(metadata, symbols,'d'),
-                    Identifier(metadata, symbols,'IDepartments')),
+                    Identifier(metadata, symbols,'IDepartment')),
                 Eq(
                     metadata, symbols,
                     Identifier(metadata, symbols,'c.credits'),
@@ -397,9 +397,9 @@
         symbols = SymbolContainer()
         # join -- Departments running some not 3 credits curses
         #
-        # [ d in IDepartments, c in ICourse, some c.runBy = d, some c.credits != 3| d.name ]
+        # [ d in IDepartment, c in ICourse, some c.runBy = d, some c.credits != 3| d.name ]
         #
-        query = """[ d in IDepartments,
+        query = """[ d in IDepartment,
         c in ICourse,
         some c.runBy = d, c.credits != 3| d.name ]"""
         qo=Head(Query(
@@ -409,7 +409,7 @@
                 In(
                     metadata, symbols,
                     Identifier(metadata, symbols,'d'),
-                    Identifier(metadata, symbols,'IDepartments')),
+                    Identifier(metadata, symbols,'IDepartment')),
                 In(
                     metadata, symbols,
                     Identifier(metadata, symbols,'c'),
@@ -438,9 +438,9 @@
         #
         # join -- Departments running just 2 credits curses
         #
-        # set [ d in IDepartments, every set [ c in ICourse, some c.runBy = d | c.credits ] = 3  | d.name ]
+        # set [ d in IDepartment, every set [ c in ICourse, some c.runBy = d | c.credits ] = 3  | d.name ]
         #
-        query = """set [ d in IDepartments,
+        query = """set [ d in IDepartment,
             every
             set [ c in ICourse, some c.runBy = d | c.credits ] = 2
             | d.name ]"""
@@ -451,7 +451,7 @@
                 In(
                     metadata, symbols,
                     Identifier(metadata, symbols,'d'),
-                    Identifier(metadata, symbols,'IDepartments')),
+                    Identifier(metadata, symbols,'IDepartment')),
                 Eq(
                     metadata, symbols,
                     Quanted(
@@ -506,7 +506,7 @@
                          Identifier(metadata, symbols, 'c'),
                          Identifier(metadata, symbols, 'code')))
             ] ,Identifier(metadata, symbols,'a')))
-        
+
         self.doit(query, qo, set(['C1','C2','C3']))
 
 def test_suite():



More information about the Checkins mailing list