On 03/28/2013 12:23 PM, daniela florescu wrote:
Michael,

in addition to the queries I already gave you with count and groupby, here is 
another one in
pure XQuery  1.0  that cannot be reduced

declare function foo($x)
{
     if ($x/@a) then $x else<b/>
};


for $x in Blah1
for $y in Blah2
let $z := foo($y)
where $z is $z
return $x


(variable $z cannot be unfolded because of the generation of new nodes, and 
then the where cannot be move up because
of the let)


Sorry, I felt like being twisted minded this morning :-)

XQuery is wicked :-)
Yes, that is twisted for sure.  But isn't it also equivalent to:

for $x in Blah1
for $y in Blah2
for $z in foo($y)[. is .]
return $x

?

not that that really makes any difference, in some sense, but given the problem as stated, I don't think a where clause is required

--
Michael Sokolov
Senior Architect
Safari Books Online

_______________________________________________
[email protected]
http://x-query.com/mailman/listinfo/talk

Reply via email to