Do you have a self-contained example that shows the behavior? Thanks in advance, Christian
Actually looking at the compilation information it looks like something more is going on there. \
This example returns the following compilation information and optimized query:
declare %basex:inline(0) function local:test() {
for $x in 1 to 200
return 1
};
local:test()
Compiling:
- pre-evaluate range expression to range sequence: (1 to 200)
- pre-evaluate range sequence to singleton xs:string sequence:
(1 to 200) -> util:replicate("", 200)
- pre-evaluate util:replicate(items,count) to singleton
xs:integer sequence: util:replicate(1, 200)
- pre-evaluate FLWOR expression to singleton xs:integer
sequence: for $x_0 in util:replicate("", 200) retu... ->
util:replicate(1, 200)
- inline local:test#0
Optimized Query:
util:replicate(1, 200)
-----
But trying to return prof:variables() returns the following compilation information and optimized query:
for $x in 1 to 2 return prof:variables()
Compiling:
- pre-evaluate range expression to range sequence: (1 to 2)
- pre-evaluate range sequence to singleton xs:string sequence:
(1 to 2) -> util:replicate("", 2)
Optimized Query:
for $x_0 in util:replicate("", 2) return prof:variables()
It looks like there is an issue both with prof:variables(), and maybe with inlining. Why is the compilation for the first example tries to inline the function even if I have defined it to 0? in BaseX 8.4.4 that doesn't happen.
Thanks again,
George