[Checkins] SVN: Sandbox/adamg/ocql/trunk/src/ocql/ improving docs
Adam Groszer
agroszer at gmail.com
Fri Aug 22 03:50:25 EDT 2008
Log message for revision 90114:
improving docs
Changed:
U Sandbox/adamg/ocql/trunk/src/ocql/database/metadata.py
U Sandbox/adamg/ocql/trunk/src/ocql/parser/parser.txt
U Sandbox/adamg/ocql/trunk/src/ocql/queryobject/queryobject.py
-=-
Modified: Sandbox/adamg/ocql/trunk/src/ocql/database/metadata.py
===================================================================
--- Sandbox/adamg/ocql/trunk/src/ocql/database/metadata.py 2008-08-22 07:34:48 UTC (rev 90113)
+++ Sandbox/adamg/ocql/trunk/src/ocql/database/metadata.py 2008-08-22 07:50:24 UTC (rev 90114)
@@ -141,7 +141,7 @@
>>> result = db.getFromIndex('IOptimizedClass', 'value', '<=', 5)
>>> type(result)
<type 'list'>
- >>> sorted(result)
+ >>> sorted(result, key=lambda x:x.name)
[Opt: 0, Opt: 1, Opt: 2, Opt: 3, Opt: 4, Opt: 5]
"""
catalogs = getUtilitiesFor(ICatalog)
Modified: Sandbox/adamg/ocql/trunk/src/ocql/parser/parser.txt
===================================================================
--- Sandbox/adamg/ocql/trunk/src/ocql/parser/parser.txt 2008-08-22 07:34:48 UTC (rev 90113)
+++ Sandbox/adamg/ocql/trunk/src/ocql/parser/parser.txt 2008-08-22 07:50:24 UTC (rev 90114)
@@ -1,80 +1,93 @@
+Parser
+======
- >>> from ocql.parser.queryparser import QueryParser
+Input: query string
+Output: Queryobject tree
+The task of the parser is to parse the inputted string to Queryobject tree.
+For the syntax see ../USAGE.txt
+Let's see now how the parser works on more and more sophisticated queries.
+
+Currently not much type and symbol checking is done in the parser. All that
+task is left to the execution so might turn out that a correctly parsed
+query is still buggy.
+
+ >>> from ocql.parser.queryparser import QueryParser
+
#FAILS, why?
#>>> QueryParser("set [ ]")(None)
- #Query(<type 'set'>, , None)
+ #Head(Query(<type 'set'>, , None))
>>> QueryParser("set [ | 1 ]")(None)
- Query(<type 'set'>, , Constant(1))
+ Head(Query(<type 'set'>, , Constant(1)))
>>> QueryParser("list [ | 1 ]")(None)
- Query(<type 'list'>, , Constant(1))
+ Head(Query(<type 'list'>, , Constant(1)))
>>> QueryParser("set [ | 1 ] union set [|2]")(None)
- Union(Query(<type 'set'>, , Constant(1)), Query(<type 'set'>, , Constant(2)))
+ Head(Union(Query(<type 'set'>, , Constant(1)), Query(<type 'set'>, , Constant(2))))
>>> QueryParser("list [ | 1 ] union list [|2]")(None)
- Union(Query(<type 'list'>, , Constant(1)), Query(<type 'list'>, , Constant(2)))
+ Head(Union(Query(<type 'list'>, , Constant(1)), Query(<type 'list'>, , Constant(2))))
>>> QueryParser("set [ | 1 ] differ set [|2]")(None)
- Differ(Query(<type 'set'>, , Constant(1)), Query(<type 'set'>, , Constant(2)))
+ Head(Differ(Query(<type 'set'>, , Constant(1)), Query(<type 'set'>, , Constant(2))))
>>> QueryParser("list [ | 1 ] differ list [|2]")(None)
- Differ(Query(<type 'list'>, , Constant(1)), Query(<type 'list'>, , Constant(2)))
+ Head(Differ(Query(<type 'list'>, , Constant(1)), Query(<type 'list'>, , Constant(2))))
>>> QueryParser("set [ i in ICourse | i ]")(None)
- Query(<type 'set'>, In(Identifier(i), Identifier(ICourse)), Identifier(i))
+ Head(Query(<type 'set'>, In(Identifier(i), Identifier(ICourse)), Identifier(i)))
>>> QueryParser("list [ i in ICourse | i ]")(None)
- Query(<type 'list'>, In(Identifier(i), Identifier(ICourse)), Identifier(i))
+ Head(Query(<type 'list'>, In(Identifier(i), Identifier(ICourse)), Identifier(i)))
>>> QueryParser("len ( set [ i in ICourse | i ] )")(None)
- Count(Query(<type 'set'>, In(Identifier(i), Identifier(ICourse)), Identifier(i)))
+ Head(Count(Query(<type 'set'>, In(Identifier(i), Identifier(ICourse)), Identifier(i))))
>>> QueryParser("len ( list [ i in ICourse | i ] )")(None)
- Count(Query(<type 'list'>, In(Identifier(i), Identifier(ICourse)), Identifier(i)))
+ 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)
- Query(<type 'set'>, In(Identifier(d), Identifier(IDepartments));
- 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)))
-
+ Head(Query(<type 'set'>, In(Identifier(d), Identifier(IDepartments));
+ 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))))
+
>>> QueryParser("set [ c in ICourse; c.credits > 3 | c.code ]")(None)
- Query(<type 'set'>, In(Identifier(c), Identifier(ICourse)); Gt(Property(Identifier(c), Identifier(credits)), Constant(3)), Property(Identifier(c), Identifier(code)))
+ Head(Query(<type 'set'>, In(Identifier(c), Identifier(ICourse)); Gt(Property(Identifier(c), Identifier(credits)), Constant(3)), Property(Identifier(c), Identifier(code))))
>>> 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)))
+ Head(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)))
-
+ Head(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)))
+ Head(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)))
+ Head(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)))
+ Head(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))
+ Head(Query(<type 'set'>, In(Identifier(c), Identifier(ICourse)); Alias(Identifier(a), Property(Identifier(c), Identifier(code))), Identifier(a)))
>>> QueryParser("set [ c in ICourse; c.code==2 or c.code==3 | c ]")(None)
- Query(<type 'set'>, In(Identifier(c), Identifier(ICourse)); Or(Eq(Property(Identifier(c), Identifier(code)), Constant(2)), Eq(Property(Identifier(c), Identifier(code)), Constant(3))), Identifier(c))
+ Head(Query(<type 'set'>, In(Identifier(c), Identifier(ICourse)); Or(Eq(Property(Identifier(c), Identifier(code)), Constant(2)), Eq(Property(Identifier(c), Identifier(code)), Constant(3))), Identifier(c)))
>>> QueryParser("set [ c in ICourse; not (c.code==2 or c.code==3) | c ]")(None)
- Query(<type 'set'>, In(Identifier(c), Identifier(ICourse)); Not(Or(Eq(Property(Identifier(c), Identifier(code)), Constant(2)), Eq(Property(Identifier(c), Identifier(code)), Constant(3)))), Identifier(c))
+ Head(Query(<type 'set'>, In(Identifier(c), Identifier(ICourse)); Not(Or(Eq(Property(Identifier(c), Identifier(code)), Constant(2)), Eq(Property(Identifier(c), Identifier(code)), Constant(3)))), Identifier(c)))
>>> QueryParser("set [ c in ICourse; a as c.name; a=='C1' | c]")(None)
- Query(<type 'set'>, In(Identifier(c), Identifier(ICourse)); Alias(Identifier(a), Property(Identifier(c), Identifier(name))); Eq(Identifier(a), Constant('C1')), Identifier(c))
+ 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)
- Query(<type 'set'>, In(Identifier(s), Identifier(IStudents));
- 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))
+ Head(Query(<type 'set'>, In(Identifier(s), Identifier(IStudents));
+ 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)))
Modified: Sandbox/adamg/ocql/trunk/src/ocql/queryobject/queryobject.py
===================================================================
--- Sandbox/adamg/ocql/trunk/src/ocql/queryobject/queryobject.py 2008-08-22 07:34:48 UTC (rev 90113)
+++ Sandbox/adamg/ocql/trunk/src/ocql/queryobject/queryobject.py 2008-08-22 07:50:24 UTC (rev 90114)
@@ -31,7 +31,7 @@
locate(tree, self, 'tree')
def __repr__(self):
- return ('%s') % (self.tree)
+ return ('Head(%s)') % (self.tree)
class Child(Location):
implements(IObjectQueryChild)
More information about the Checkins
mailing list