Salut Lancelot,

I might have missed it, but what is the exact symptom? Any error message?
Have you tried the "real" script through QConsole? Any chance you simplify
it and post it here? More pairs of eyes might catch something you missed...

Regards,

-- 
Florent Georges
H2O Consulting
http://h2o.consulting/

On 30 Jan 2018 22:29, "Lanz" <lancelot.meuril...@gmail.com> wrote:

> Hi all,
>
> I've got this strange issue with xdmp:node-delete with a node in the
> database with Marklogic 8.0-6.3.
> First when I use xdmp:node-delete on the target node with the above basic
> script, it works:
> ------------------------------------------------------------------------
> xquery version "1.0-ml";
> declare namespace html = "http://www.w3.org/1999/xhtml";;
> declare namespace l="http://www.oecd.org/ns/lambda/schema/";;
> import module namespace db = "http://www.oecd.org/ns/lambda/app/lib/db";
> at "/app/lib/db/db.xqm";
> import module namespace exportlib = "http://www.oecd.org/ns/
> lambda/app/lib/export" at "/app/lib/export/export.xqm";
> declare variable $keyName-parent-toc-info as xs:string :=
> 'parent-toc-info';
> let $rid := 'urn:oecd.org:publications:id:expression:g2g12781'
> let $doc := fn:doc(db:get-uri-by-rid($rid))/l:expression
> return
> (
> (: display parent node before child node deletion :)
> $doc/l:exportChannels/l:exportChannel[@href =
> $exportlib:channel-rid-i2])/l:precomputedValues
> ,xdmp:node-delete($doc/l:exportChannels/l:exportChannel[@href =
> $exportlib:channel-rid-i2])/l:precomputedValues/l:precomputedValue[@key =
> $keyName-parent-toc-info]
> )
> ------------------------------------------------------------------------
> The node 'l:precomputedValues[l:precomputedValue[@key =
> $keyName-parent-toc-info]]' is removed from document in database
>
> But if I try to do it in the following script (the real script), it does
> not work:
> 1- I populate a map $mapA with ids of eligible documents based on a
> sem:sparql query using a sem:store constructor
> 2- I populate a map $mapB with ids of larger set of documents based on a
> sem:sparql query using a sem:store constructor with a
> cts:element-attribute-value-query on the element to be deleted
> (cts:element-attribute-value-query 
> (xs:QName('l:precomputedValue'),xs:QName('key'),
> $keyName-parent-toc-info)) among other cts:query constructor
> 3- Then I create a 3rd map based on the difference of the two maps ($mapB
> - $mapA)
> 4- I loop over this map of ids to get the uri of the document, then the
> document with fn:doc(), then I get the element l:precomputedValues to be
> deleted with an Xpath (the same as in the basic script)
> 5- It never works on Oxygen using an xdbc connection on ML db or event in
> Qconsole. There is no error, it takes a while and I've got nothing in the
> error log (even with the finest setting). When I launch the profiler on
> Qconsole, here the message I get at the end :
> [1.0-ml] XDMP-CAST: (err:FORG0001) xs:unsignedLong($d div
> xs:dayTimeDuration("PT0.000001S")) -- Invalid cast: -178609914.9 cast as
> xs:unsignedLong
>
> I confirm:
> - the node to be deleted is in the db not an on-the-fly constructed node
> - the id used in the first successful script comes from the final map in
> second script. This final map is populated with correct and real document
> ids.
>
> Any help is appreciated
> Lanz
>
> _______________________________________________
> General mailing list
> General@developer.marklogic.com
> Manage your subscription at:
> http://developer.marklogic.com/mailman/listinfo/general
>
>
_______________________________________________
General mailing list
General@developer.marklogic.com
Manage your subscription at: 
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to