Hi,

I ran over an unexpected bahavior of BaseX 9.7.3
Can anyone explain?

Note: BaseX 9.7.3 is running with MIXUPDATES=true

file1.xq: create to functions in a list and call each function with a list 
comprehension
----
declare function local:bla(){<bla id=""/> };
declare function local:blubb(){<blubb id=""/> };
(local:bla#0,local:blubb#0)!.()
----

Result: as expected
<bla id=""/>
<blubb id=""/>




file2.xq: same as above, but in an xquery:eval
---
xquery:eval(
  '
  declare function local:bla(){<bla id=""/>};
   declare function local:blubb(){<blubb id=""/> };
   local:bla#0,local:blubb#0
  '
)!.()

---

Result: as expected
<bla id=""/>
<blubb id=""/>

file3.xq: same as file1, but with a little "twist"
---
declare function local:bla(){<bla/> update {insert node attribute id {} into 
.}};
declare function local:blubb(){<blubb/> update {insert node attribute id {} 
into .}};
(local:bla#0,local:blubb#0)!.()
---

Result: as expected
<bla id=""/>
<blubb id=""/>

file4.xq trying to call the same with xquery:eval will not work 
([xquery:update] No updating expression allowed.), so we use 
xquery:eval-update()
---

xquery:eval-update(
  '
   declare function local:bla(){<bla/> update insert node attribute id {} into 
.};
   declare function local:blubb(){<blubb/> update insert node attribute id {} 
into .};
   local:bla#0,local:blubb#0
  '
)!.()

--

Result: expected
<bla id=""/>
<blubb id=""/>

But the result is:
local:bla#0
local:blubb#0

file5.xq:
---
xquery:eval-update(
  '
   declare function local:bla(){<bla/> update insert node attribute id {} into 
.};
   declare function local:blubb(){<blubb/> update insert node attribute id {} 
into .};
   local:bla#0
  '
)()
---
Result: as expected
<bla id=""/>


Is this a bug? A for-loop will not work either.

Best regards,
 Sebastian



IT-Tacheles – IT-Themen auf den Punkt
Folge 38: Datenplattformen 
https://www.adesso.de/de/news/it-tacheles/folge-38.jsp?pk_campaign=ittacheles&pk_source=email&pk_medium=banner&pk_content=38_datenplattformen

-------------------------------------------------------
     >>> business. people. technology. <<<
-------------------------------------------------------

adesso SE mit Sitz in Dortmund
Vorstand: Michael Kenfenheuer (Vors.), Dirk Pothen, Andreas Prenneis, Stefan 
Riedel, Jörg Schroeder, Torsten Wegener
Vorsitzender des Aufsichtsrates: Prof. Dr. Volker Gruhn
Amtsgericht Dortmund HRB 20663

Reply via email to