[xquery-talk] Release of the GCX XQuery EngineQ

Per Bothner per at bothner.com
Sun Feb 4 17:05:53 PST 2007

Stefanie Scherzinger wrote:
> The other in-memory engines (QizX, Galax, and Saxon) implement more
> XQuery features (or all of them),

Qexo is also an in-memory engine (though it has an abstraction layer
to it could potentially hook up to data-base), and open-source
under a liberal license.

 > but they are not geared towards stream processing.
 > ...
> Unfortunately, no other streaming XQuery implementations are to be had
> to be compared against. However, if you know of any suitable
> implementations, I'd appreciate it very much if you could point us to
> them.

As I see it, there are two kinds of "streaming" implementations:
- pull-based: expressions are evaluated at-need (lazily) when and if
their results are needed; or
- push-based: expressions are evaluated eagerly, but sub-parts of the
results are "pushed" to a "consumer" as they are generated, while
avoiding creating of complete "reified" sequences, if possible.

The "data-base-oriented" implementations seem to be pull-based,
while more "document-oriented" ones may be push-based.  At least Qexo
falls into the latter category, and my impression is Saxon does too.
My impression from your web-page is that GCX is "push-based", so it
should be comparable to Qexo and Saxon.

Now Qexo has not been heavily optimized, and it is certainly true
that there are places where it re-ifies values where it should stream
them.  Hopefully I'll have time to study your implementation and
other relevant research so I can do better.
	--Per Bothner
per at bothner.com   http://per.bothner.com/

More information about the talk mailing list