hej monetdb developers,
i tried to write a simple aggregation query:
let $cands := doc("x.xml")//c for $eid in distinct-values($cands/@id) return <candidate id="{$eid}" count="{count($cands[@id eq $eid])}"/>
however, executing the above query turns out to be rather difficult. i always killed the process after waiting for more than half an hour without getting any result.
x.xml is 17MB large and contains 300000 candidates nodes c. i run it on Monet Database Server V4.19.0 where the query crashed
ERROR = !ERROR: GDKload: cannot mmap(): name=10/1030, ext=buns.priv !OS: Cannot allocate memory !ERROR: GDKload failed: name=10/1030, ext=buns.priv !ERROR: CMDleftjoin: operation failed.
and on the newer stable release MonetDB Server v4.20.0 on a machine with 16GB memory where the query just runs endless.
apparently the query compiler does not recognise the necessary join and aggregation here. is that a known problem?
btw. sorting the candidates by @id value is done in seconds:
let $cands := doc("x.xml")//c for $c in $cands order by $c/@id return $c
best -henning