[xquery-talk] xquery with large xml file
Per Bothner
per at bothner.com
Thu Apr 13 13:30:25 PDT 2006
Michael Kay wrote:
> I fixed what I assumed was a typo.
I tried this:
declare function local:pathOfNode($node)
{
if(empty($node/..)) then "" else
concat(local:pathOfNode($node/..), "/", local-name($node))
};
let $j:= doc("file:/tmp/standard")
for $n in $j//* return
local:pathOfNode($n)
on the 100MB "standard" XMark test file, and then did:
$ java kawa.repl --main -C /tmp/path.xq
$ (date; java -Xmx600m path ; date)>&/tmp/log
That triggered a bug. After fixing that bug, it seems to have made
it through, taking 8 minutes 24 seconds to generate a 75MB file.
Note Qexo doesn't stream the input file in this case, but it does
have a compact internal representation.
There is an obvious optimization that would probably help a lot:
The concat routine could "write" the arguments to the passed-in
output "consumer", without actually constructing the result.
--
--Per Bothner
per at bothner.com http://per.bothner.com/
More information about the talk
mailing list