Hi,
I have a specific piece of code which fails to run as expected.
Unfortunately i didn't manage to create an MCVE so far.
The part of code that should fail in my script is:
some $i in $data satisfies starts-with($i, $string)
Where $data is a list of strings, and $string is a sequence of two
strings - example ("S1", "S2"). The Query executes without error, but
the trace message is never visible.
The part of the Query plan that executes successfully (while it
shouldn't) is:
<StaticFunc name="common:startsWith" type="xs:boolean"
arg0="elements" arg1="string">
<GFLWOR type="xs:boolean" size="1">
<Let type="xs:string*">
<Var name="$string" id="178" type="xs:string*"/>
<FnTrace name="trace(value[,label])" type="xs:string*">
<StaticFuncCall name="common:string" tailCall="false"
type="xs:string*">
<VarRef>
<Var name="$string" id="177" type="item()*" promote="true"/>
</VarRef>
</StaticFuncCall>
<Str type="xs:string">STRING: </Str>
</FnTrace>
</Let>
<Quantifier option="some" type="xs:boolean" size="1">
<GFLWOR type="xs:boolean*">
<For type="xs:string" size="1">
<Var name="$i" id="180" type="xs:string"/>
<StaticFuncCall name="common:string" tailCall="false"
type="xs:string*">
<VarRef>
<Var name="$elements" id="176" type="item()*"
promote="true"/>
</VarRef>
</StaticFuncCall>
</For>
<FnTrace name="trace(value[,label])" type="xs:boolean" size="1">
<FnStartsWith name="starts-with(string,sub[,collation])"
type="xs:boolean" size="1">
<VarRef type="xs:string" size="1">
<Var name="$i" id="180" type="xs:string"/>
</VarRef>
<VarRef type="xs:string*">
<Var name="$string" id="178" type="xs:string*"/>
</VarRef>
</FnStartsWith>
<Str type="xs:string">SATISFY: </Str>
</FnTrace>
</GFLWOR>
</Quantifier>
</GFLWOR>
</StaticFunc>
I'm not sure if you can find anything from the Query plan for why this
is happening. This fails either with or without inlining.
Regards,
George