[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