Hi Geert,
That explains it, is it a bug or a feature? ( The same thing works as expected in eXists ... ) Cheers, Szabolcs From: [email protected] [mailto:[email protected]] On Behalf Of Geert Josten Sent: 23 February 2012 14:21 To: MarkLogic Developer Discussion Subject: Re: [MarkLogic Dev General] weird xpath behaviour Hi Szabolcs, Evan pointed out the following to me recently. / at the start of an XPath expression is interpreted within MarkLogic as 'collection()/'. A / within a predicate, however, is not. It is effectively interpreted as 'root()/ '. Kind regards, Geert Van: [email protected] [mailto:[email protected]] Namens Szabolcs Illes Verzonden: donderdag 23 februari 2012 13:54 Aan: [email protected] Onderwerp: [MarkLogic Dev General] weird xpath behaviour Hi, I have seen this before, but came across again, so I thought ask this time. Same/similar xquery but different results: Version 1: let $ids := /HorseRacingCard/Meeting[@country eq "England" and AdvancedGoing]/@id return (/HorseRacing/Meeting[@id = $ids] )[1] returns expected results. Version 2: Same as 1 but ids vatriable is just inlined (/HorseRacing/Meeting[@id = /HorseRacingCard/Meeting[@country eq "England" and AdvancedGoing]/@id ] )[1] returns nothing [ slow, but that's expected: ] Other than Version 2 is NOT optimal since the expression inside the predicate is evaluated for each sequence item, I guess it should return the same results. Version 3: (/HorseRacing/Meeting[@id = fn:collection()/HorseRacingCard/Meeting[@country eq "England" and AdvancedGoing]/@id ] )[1] Returns expected results and it's fast, expression is only evaluated once Can someone shed some light why Version 2 is not returning any results? Could it be a bug in the optimizer? Thanks, Szabolcs
_______________________________________________ General mailing list [email protected] http://developer.marklogic.com/mailman/listinfo/general
