Lists Home |
Date Index |
Dong Hui Zhuo wrote:
> Given a XML database DB, and a query Q1, either XQuery or XSLT, we refer
> to the result of Q1(DB) (the result of running query Q1 against database
> DB) as a view, say V, whose schema is Sv.
> Suppose we have another query Q2 (either XQuery or XSLT) which is
> formulated against schema Sv (the schema of the view V) and the
> size of view V too big to fit in memory, my questions are:
> 1) Is it possible that we evaluate Q2(V), (that is running Q2 against the
> result of Q1(DB)), without materializing (or write back to hard disk) the
> result of Q1(DB)?
> 2) Does the answer depend on the type of query language, say XQuery or
It depends on the query language and the implementation.
XQuery certainly has the potential to implement this efficiently.
The query language is closed under composition, so Q2(Q1(DB)) can be
expressed as (Q2 . Q1)(DB). Depends on how well the implementation
can optimize (Q2 . Q1).
For XSLT I think the answer is "only for a very limited set of
queries", and determining if Q1 and Q2 are members of that set
is so difficult that it's unlikely to be implemented by any