Provides an execution trace intended to be used in debugging queries.
fn:trace( $value as item()*item()*fn:trace( $value as item()*,$label as xs:stringitem()*The function returns the value of $value, unchanged.
In addition, the values of $value, converted to an xs:string,
and $label
(if supplied)
may be directed to a trace data set. The destination of the trace
output is implementation-defined. The format of the trace output is
implementation-dependent. The ordering of output from calls of the
fn:trace function is implementation-dependent.
Consider a situation in which a user wants to investigate the actual value passed to
a function. Assume that in a particular execution, $v is an
xs:decimal with value 124.84. Writing fn:trace($v,
'the value of $v is:') will put the strings "124.84" and
"the value of $v is:" in the trace data set in implementation
dependent order.
Sometimes there is a need to output trace information unrelated to a specific value.
In such cases it can be useful to set $value to an empty string or an empty
sequence, and to compute the value of the $label argument:
fn:trace((), "Processing item " || $i).