Hello,

1°)I am querying Monetdb through the XRPC java API.
I have implemented a xquery in a function in a XRPC module
and I call it from java.

I noticed that my XRPC module is not loaded
when the xquery compares an attribute to an integer value (for instance $n[@attr=1])

In this case, I get the following error message embedded in the XRPC reply:
Error occurred during execution fatal error: function #pf:number is not supported.
xquery_module_load: could not load module.

Comparing an attribute to a string works fine however (ex $n[@attr="1"])

2°)What is strange is that the same function (fct) works perfect when I call it from the Mclient (instead of java).
Example
import module namespace f="xrpc-extract-function" at "http://127.0.0.1:50001/export/extract.xq";
f:fct("file.xml", 0, 1000000)

3°)I don't know if this problem is general or specifically related to my configuration.
Indeed I had to load the server modules myself (else the server crashes) with the following command in the bat server script:

"%MONETDB%\bin\Mserver.exe" --dbinit="module(pf_support);module(logger);module(xrpc_client);module(xrpc_server);module(pf_standoff);module(mkey);module(pathfinder);module(mapi);" --set "prefix=%MONETDB%" --set "exec_prefix=%MONETDB%" %MONETDBFARM% %*

Your help will be really helpful, because right now I can only do string comparisons on attributes (which slows the program a lot,....).
My guess is that, when invoked from java, Monetdb looks (at load time) for pf:number instead of fn:number to convert the string value of the attribute,
but that this function does not exist

Warm regards
Ryad

//////////////////////////////////////////
Here is my java call, I guess it is exaclty the same signature that with the Mclient (so there is no problem with it)

    String call = XRPCMessageMine.XRPC_SEQ(XRPCMessageMine.XRPC_ATOM("string", file))
                    + XRPCMessageMine.XRPC_SEQ(XRPCMessageMine.XRPC_ATOM("double", Double.toString(timeInterval[0])))
                    + XRPCMessageMine.XRPC_SEQ(XRPCMessageMine.XRPC_ATOM("double", Double.toString(timeInterval[1])));