Hi Jean-Marc,

the bug you encountered is due to a newly feature (called “function
inlining”) we’ve introduced just recently. It will be fixed soon [2].
Until then, you can simply disable it by setting INLINELIMIT to 0 [1]
This can e.g. be done by choosing »Command« in the dropdown box of the
GUI main window, and executing the command »SET INLINELIMIT 0«.

Thanks for the reproducible code,
Christian

[1] http://docs.basex.org/wiki/Options#INLINELIMIT
[2] https://github.com/BaseXdb/basex/issues/796
___________________________

On Fri, Nov 22, 2013 at 10:28 AM, jean-marc Mercier
<jeanmarc.merc...@gmail.com> wrote:
> Hi,
>
> Within my environment, I am experiencing some frustrating behavior of the
> Xquery Basex engine. I've done my best to single out the problem in the
> following XQUERY code :
>
> declare  function local:wtf($x as item() ) {function() { $x}};
> declare  function local:dummy($f,$x)  {
>   if(fn:empty($f())) then local:wtf($x) else local:wtf(())};
>
> declare variable $insert := local:dummy(function(){ () }, function() { (),
> ()} );
> fn:count($insert())
>
> The issues are :
>
> 1) executing this code yields an "Improper use? Potential bug?" exception
> (see details further on).
> 2) If I change the execution query to be
> fn:count(local:dummy(function(){ () }, function() { (), ()} )()) ( I just
> copy and pasted the value of $insert into the fn:count(..) ) then the query
> is executed normally, returning "1".
> 3) If I change the function declaration local:wtf as follow
> declare  function local:wtf($x) {function() { $x}};  (I just removed "as
> item()"), then the query is executed normally, returning "1".
>
> Can you reproduce it with another environment ?
>
> Cheers,
>
> Jean-Marc
>
>
> Improper use? Potential bug? Your feedback is welcome:
> Contact: basex-talk@mailman.uni-konstanz.de
> Version: BaseX 7.8 beta 6aeaebf
> Java: Oracle Corporation, 1.7.0_05
> OS: Windows 7, amd64
> Stack Trace:
> java.lang.NullPointerException
> at org.basex.query.value.item.FuncItem.inlineExpr(FuncItem.java:308)
> at org.basex.query.func.DynFuncCall.optimize(DynFuncCall.java:58)
> at org.basex.query.func.DynFuncCall.compile(DynFuncCall.java:39)
> at org.basex.query.expr.Arr.compile(Arr.java:40)
> at org.basex.query.func.StandardFunc.compile(StandardFunc.java:60)
> at org.basex.query.MainModule.compile(MainModule.java:63)
> at org.basex.query.QueryCompiler.compile(QueryCompiler.java:70)
> at org.basex.query.QueryCompiler.compile(QueryCompiler.java:61)
> at org.basex.query.QueryContext.analyze(QueryContext.java:270)
> at org.basex.query.QueryContext.compile(QueryContext.java:253)
> at org.basex.query.QueryProcessor.compile(QueryProcessor.java:71)
> at org.basex.core.cmd.AQuery.query(AQuery.java:81)
> at org.basex.core.cmd.XQuery.run(XQuery.java:22)
> at org.basex.core.Command.run(Command.java:323)
> at org.basex.core.Command.execute(Command.java:92)
> at org.basex.server.LocalSession.execute(LocalSession.java:121)
> at org.basex.server.Session.execute(Session.java:37)
> at org.basex.core.Main.execute(Main.java:146)
> at org.basex.BaseX.<init>(BaseX.java:119)
> at org.basex.BaseX.main(BaseX.java:38)
>
>
>
> _______________________________________________
> BaseX-Talk mailing list
> BaseX-Talk@mailman.uni-konstanz.de
> https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk
>
_______________________________________________
BaseX-Talk mailing list
BaseX-Talk@mailman.uni-konstanz.de
https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk

Reply via email to