…confirmed and fixed, a new snapshot is available. The optimizer
dropped "/string()" (as distinct-values will always atomize its
argument), but as a result, the result type changed to
xs:untypedAtomic*.


On Tue, May 19, 2020 at 4:12 PM Marco Lettere <m.lett...@gmail.com> wrote:
>
> Dear all,
>
> after installing Basex 9.3.3 one application of ours started failing in
> a particular functionality.
>
> We tracked it down to the following example code:
>
> let $in :=
>    <json type="object">
>      <source type="object">
> <reference>Object/20383920-5bb1-4397-8b51-b752863acddf</reference>
>      </source>
>    </json>
> let $s as xs:string* := distinct-values($in/source/reference/string())
> return $s
>
> This code now returns the following error: [XPTY0004] Cannot treat
> xs:untypedAtomic* as xs:string*:
> distinct-values($in_0/element(source)/element(reference)).
> Whereas before it was automatically casting to xs:string now it seems
> that the type coercion in the let clause is too restrictive.
>
> This happens only with the distinct-values applied by the way.
>
> Is it correct now or was it before? For the moment we solved by removing
> the type enforcement in the let clause.
>
> Thank you for the clarification.
>
> Regards,
>
> Marco.
>

Reply via email to