[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] following-sibling is evil

Subject: Re: [xsl] following-sibling is evil
From: "Dimitre Novatchev dnovatchev@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Sun, 6 Jul 2014 20:42:58 -0000

On Sun, Jul 6, 2014 at 12:39 PM, Michael Kay mike@xxxxxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
>>    following-sibling::Book[Title eq $currentAuthor and Genre eq
>> $currentGenre][1]
> I can't see why that's obviously more efficient. They look identical to me.

The "naive" processor will perform only one and not two passes --
doing both comparisons in a single pass.

>> or probably even better (as a hint to the optimizer):
>>    exists(head(following-sibling::Book[Title eq $currentAuthor and
>> Genre eq $currentGenre]))
> Again, it's still quadratic performance if your evaluate this for every Book.

Yes, "more efficient" here is relative to the initial expression, not
in big O terms.


Dimitre Novatchev
Truly great madness cannot be achieved without significant intelligence.
To invent, you need a good imagination and a pile of junk
Never fight an inanimate object
To avoid situations in which you might make mistakes may be the
biggest mistake of all
Quality means doing it right when no one is looking.
You've achieved success in your field when you don't know whether what
you're doing is work or play
To achieve the impossible dream, try going to sleep.
Facts do not cease to exist because they are ignored.
Typing monkeys will write all Shakespeare's works in 200yrs.Will they
write all patents, too? :)
I finally figured out the only reason to be alive is to enjoy it.

Current Thread