Hi Geert, Thanks for your reply.
The bug can be really annoying when using a default value for the external variable, like this: declare variable $param as xs:string external := "myDefault"; In this case the invoked function reads the default value and there is no XDMP-EXTVAR error. The XDMP-EXTVAR error would help to point out the bug and advice the programmer to use the workaround. But without the error the incorrect usage of the default value remains undetected. Regards, Andreas 2016-06-20 16:09 GMT+02:00 Geert Josten <[email protected]>: > Hi Andreas, > > I think I found the related bug. It is listed for next patch release, but > it has a lower priority, so could get pushed back. It did report another > workaround if that helps: > > xquery version "1.0-ml"; > > declare variable $param as xs:string external; > > declare variable $param2 := $param; > > > > declare function local:func() { > > xdmp:log("value: " || $param2) > > }; > > > > xdmp:spawn-function(function() { local:func() }) > > Haven’t tested myself, and not sure if it is of any help to you.. > > Cheers, > Geert > > From: <[email protected]> on behalf of Andreas > Hubmer <[email protected]> > Reply-To: MarkLogic Developer Discussion <[email protected]> > Date: Monday, June 20, 2016 at 3:52 PM > To: MarkLogic Developer Discussion <[email protected]> > Subject: Re: [MarkLogic Dev General] XDMP-EXTVAR with xdmp:spawn-function > and external variables > > Hi, > > Can you tell me when the bug described below will be fixed? > We've stumbled upon it again (in the latest MarkLogic version)... > > Thanks, > Andreas > > > 2015-12-15 0:07 GMT+01:00 Danny Sokolsky <[email protected]>: > >> Yes, this is a bug. We are already tracking it internally, but it is not >> yet fixed. >> >> >> >> Thanks, >> >> -Danny >> >> >> >> *From:*[email protected] [mailto: >> [email protected]] *On Behalf Of *Andreas Hubmer >> *Sent:* Monday, December 14, 2015 8:45 AM >> *To:* MarkLogic Developer Discussion >> *Subject:* [MarkLogic Dev General] XDMP-EXTVAR with xdmp:spawn-function >> and external variables >> >> >> >> Hi, >> >> >> >> It seems that I've found a bug concerning spawned functions and external >> variables. >> >> >> >> In a module with an external variable I spawn a function. The spawned >> function calls another function which fails with XDMP-EXTVAR when accessing >> the external variable. >> >> Here is a small example (main.xqy): >> >> xquery version "1.0-ml"; >> >> declare variable $param as xs:string external; >> >> >> >> declare function local:func() { >> >> xdmp:log("value: " || $param) >> >> }; >> >> >> >> xdmp:spawn-function(function() { local:func() }) >> >> >> >> >> I call main.xqy using the following snippet: >> >> xquery version "1.0-ml"; >> >> xdmp:invoke("main.xqy", (xs:QName("param"), "foo")) >> >> >> >> This leads to the following error: >> >> XDMP-EXTVAR: (err:XPDY0002) declare variable $param as xs:string external; >> -- Undefined external variable fn:QName("","param") >> >> I've also found out that accessing the external variable directly in the >> spawned function works. Working version of main.xqy: >> >> xquery version "1.0-ml"; >> >> declare variable $param as xs:string external; >> >> >> >> xdmp:spawn-function(function() { xdmp:log("value: " || $param) }) >> >> >> >> Regards, >> >> Andreas >> >> >> >> -- >> >> Andreas Hubmer >> >> IT Consultant >> >> >> >> _______________________________________________ >> General mailing list >> [email protected] >> Manage your subscription at: >> http://developer.marklogic.com/mailman/listinfo/general >> >> > > > -- > Andreas Hubmer > Senior IT Consultant > > EBCONT enterprise technologies GmbH > Millennium Tower > Handelskai 94-96 > A-1200 Vienna > > OUR TEAM IS YOUR SUCCESS > > UID-Nr. ATU68135644 > HG St.Pölten - FN 399978 d > > _______________________________________________ > General mailing list > [email protected] > Manage your subscription at: > http://developer.marklogic.com/mailman/listinfo/general > > -- Andreas Hubmer Senior IT Consultant EBCONT enterprise technologies GmbH Millennium Tower Handelskai 94-96 A-1200 Vienna Mobile: +43 664 60651861 Fax: +43 2772 512 69-9 Email: [email protected] Web: http://www.ebcont.com OUR TEAM IS YOUR SUCCESS UID-Nr. ATU68135644 HG St.Pölten - FN 399978 d
_______________________________________________ General mailing list [email protected] Manage your subscription at: http://developer.marklogic.com/mailman/listinfo/general
