[Zope-dev] Re: Zope Futures discussion: ZCatalog Query Facility?

Butch Landingin butchland@yahoo.com
Fri, 21 Jan 2000 15:00:25 -0800 (PST)


brian lloyd <brian@digicool.com> wrote: 
original article:http://www.egroups.com/group/zope/?start=21460
> Hi all,
> 
> I will be giving a talk at the Zope Track at IPC8 on the 
> future directions of Zope. The format will be about half
> me babbling about our broad future plans and half Q & A.
<snip> 

Since you asked ;^),

Now that a lot of people are starting to use ZCatalog for retrieving
data inside the ZODB, does DC have plans for enhancing ZCatalog with a 
full-functioned Query engine? Something like "OQL" or SQL3 (i.e.
a "standard" query language with support for OODBMS) querying facility? 

IMHO, this will make the Zope/ZODB a real contender as full-featured
OODBMS (along with support for transactions & CORBA support (IIRC, 
someone has started working with an ILU/Fnorb interface to Zope?)) 
If only from the *marketing* viewpoint, having a free, robust, and OpenSource OODBMS 
with support for transactions, CORBA, and OQL/SQL3 querying facility is a *kick-ass*
application that even *commercial* (i.e. proprietary) OODBMS would find hard to match!

Ideally this Querying facility could do something like :

        Query --> [QueryParser] --> [QueryOptimizer] ---> [QueryRuntimeEngine] --> ResultSet

where the QueryParser translates a SQL3 or OQL query into a set of ZCatalog query atoms (i.e
it translates the query into a series of ZCatalog method calls), then the QueryOptimizer
(using some set of optimizing transformations & maybe even use data metrics) optimizes
the query. Then something like a QueryManager can either store this "optimized" query or 
call on the QueryRuntimeEngine to execute it and return a Result set. 

By storing the "optimized" query (something like DB2's statically-bound queries) and just
executing them at runtime, we don't incur the overhead of running the parser and optimizer each
time we
execute the query -- although we could also forgo the storage and just invoke the querying
facility "dynamically" where all the processes (parsing, optimization, and execution) are done in
sequence(with the intermediate products discarded) -- this is useful for "adhoc" type of
queries...

I know this will require a *BIG* effort... and the DC folks might not just consider it a priority 
right now... but could DC or at least the Zope Community consider it and give it a thought 
now and then?

Regards,

Butch

P.S. I hope all the Zope presentors at IPC8 post an article or even a short update on 
papers/talks presented at the ZopeTrack so that those of us who can't make it would at 
least get a feel for whats going on there...
__________________________________________________
Do You Yahoo!?
Talk to your friends online with Yahoo! Messenger.
http://im.yahoo.com