Early in this week I was able to complete the two tasks assigned to me for the algebra compiler[1]. It was about do a proper interface declarations for algebra objects and to implement location in the algebra object tree, by adding parent and name properties to the algebra objects and adding a 'head' element to the tree. All the implementations related to algebra compiler is in a separate branch[2].
Then I moved to the queyobject compiler, which has pretty much the same kind of work to be done as I did in the algebra compiler. I did the interface declarations and implement location in the query object tree. But leave the adaptation part to do later. Implementations for this part goes here [3].
After doing that I moved for a algebra optimization part. Identified optimization is related to transform the algebra tree if it contains a particular pattern. That means look for a pattern in the tree and modify the tree to get the results. For a example say we have a condition,
class.property operation value,
so if there is an index available for the class.property we can use that for the fast searching. Currently, engine gets all objects of an interface and then it uses some loop to filter what it wants. So I include methods to find out whether it can decide the class.property has an index and retrieve data for particular class.property. Repository branch for this work linked here.[4]
[1] http://spreadsheets.google.com/ccc?key=pqiTfcdeaKabBUy48qR0JTw&hl=en_GB - OCQL - TODO list
[2] svn://svn.zope.org/repos/main/Sandbox/adamg/ocql/branches/alg-compiler - algebra compiler
[3] svn://svn.zope.org/repos/main/Sandbox/adamg/ocql/branches/qo-compiler - query object compiler
[4] svn://svn.zope.org/repos/main/Sandbox/adamg/ocql/branches/optimize-with-index
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment