> > Ahh, I see. I can reproduce your result by omitting the %updating. > I guess the store functions, like the file functions, are updating (but > they just don't like to admit it 😀.) >
;·) All side-effecting BaseX functions are internally tagged as »nondeterministic«. This way, various optimizations are suppressed that may change the behavior of the code. For example, in code like… let $bye := file:delete('bye.bye') return 123 …it is ensured that the expression bound to $bye is executed, even if the variable is not referenced later on. In contrast, code like… let $bye := <a/> return 123 …is simplified to '123' before it will be executed. It is important to know that side-effecting code that is executed in parallel may lead to conflicts, even if it is performed in the same JVM. For example, we removed several synchronicity checks for file functions a while ago to speed up their evaluation. The store functions will remain synchronized. Best, Christian