yes Florent, it returns the doc uri On Wed, Jan 31, 2018 at 6:53 PM, Florent Georges <li...@fgeorges.org> wrote:
> Just in case, you can confirm that the node you are about to delete is > indeed from a stored document with something like the following : > > xdmp:log(fn:document-uri(fn:root($node))) > > -- > Florent Georges > H2O Consulting > http://h2o.consulting/ > > On 31 Jan 2018 18:47, "Lanz" <lancelot.meuril...@gmail.com> wrote: > >> Hi Mister Florent, >> >> Thks for your answer. >> There is no symptom at all: no exception, no specific log, no deletion. >> When I run the 'real' script on QConsole (or Oxygen connected through xdbc >> to ML), it returns the focus after a while (whitout SVC-EXTIME) without any >> deletion. >> I'm trying with a colleague to simplify the script and recreate a >> readable case for everyone. >> For now it seems that the sem:sparql combined with sem:store has some >> influences on this behavior >> >> So I will come back soon with a simplified script. >> Lanz >> >> >> On Wed, Jan 31, 2018 at 6:26 PM, Florent Georges <li...@fgeorges.org> >> wrote: >> > >> > 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 >> > >> >> _______________________________________________ >> 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 > >
_______________________________________________ General mailing list General@developer.marklogic.com Manage your subscription at: http://developer.marklogic.com/mailman/listinfo/general