Yes, with xdmp:mapping set to "false" it does throw an expected coercion
error.

So, how come?

I was under the impression that xdmp:mapping applies the function's logic to
each parameter. Does xdmp:mapping also not call functions under certain
circumstances? Is there someone who can help explain this functionality or a
document I can read?

Steve

So, can someone explain, or point me to a document where xdmp:mapping is
explained? I've read the xdmp:mapping section in the MarkLogic

On Fri, Apr 2, 2010 at 3:05 PM, Micah Dubinko
<micah.dubi...@marklogic.com>wrote:

> Try turning off function mapping with this declration at the top (after any
> module imports)
>
> declare option xdmp:mapping "false";
>
> Does that at least allow the function to get called (or cause a coercion
> error involving ())?
>
> -m
>
> On Apr 2, 2010, at 2:01 PM, spig wrote:
>
> > The point is that the function is never called (it is throwing fn:error
> just to prove that it's not called, errors or not). Also, there is no
> warning that the function is not being called, or that there is an error in
> the parameter. Anyone know why this is? Try running the code and you'll see
> what I mean. It's almost like there is a hidden try/catch around my code -
> no errors raised and doesn't show that nothing was called.
> >
> > Steve
> >
> > On Fri, Apr 2, 2010 at 2:55 PM, Ruth Stryker <ruth.stry...@marklogic.com>
> wrote:
> > Hi spig,
> >
> >
> > Not sure about fn:error(). Maybe approach with try get instead…?
> >
> >
> > try {
> >  1 div 0
> > }
> > catch ($e) {
> >  $e
> > }
> >
> > Or just use an if then else for checking if your field exists…?
> >
> >
> > if(xdmp:get-request-field("q"))
> >
> >          then local:search-results()
> >
> >          else …
> >
> >
> >
> >
> > From: general-boun...@developer.marklogic.com [mailto:
> general-boun...@developer.marklogic.com] On Behalf Of spig
> > Sent: Friday, April 02, 2010 1:43 PM
> > To: general@developer.marklogic.com
> > Subject: [MarkLogic Dev General] Unexpected behavior
> >
> >
> > If I run the following code, my function is never called and no errors
> are raised. Any ideas?
> >
> >
> > xquery version "1.0-ml";
> >
> > declare function local:test($param1 as xs:string, $param2 as xs:string,
> $param3 as xs:string) {
> >   fn:error()
> > };
> >
> > let $var := xdmp:get-request-field("non-existent-param")
> >
> > let $blah := local:test("", "", $var)
> >
> > return "Function Call Successful"
> >
> >
> >
> > Thanks,
> > Steve Spigarelli
> >
> >
> > _______________________________________________
> > General mailing list
> > General@developer.marklogic.com
> > http://xqzone.com/mailman/listinfo/general
> >
> >
> > _______________________________________________
> > General mailing list
> > General@developer.marklogic.com
> > http://xqzone.com/mailman/listinfo/general
>
> _______________________________________________
> General mailing list
> General@developer.marklogic.com
> http://xqzone.com/mailman/listinfo/general
>
_______________________________________________
General mailing list
General@developer.marklogic.com
http://xqzone.com/mailman/listinfo/general

Reply via email to