Closed GoogleCodeExporter closed 9 years ago
Both the predicate-based and the old optimizer get this wrong. The old
optimizer
even makes the query crash with "Variable $SDATE not bound in predicate
substring"
by running the year {OR} too early.
With the predicate-based optimizer, after the first predicate is chosen (to be
instance-of, setting $EVENT), the not() clause is evaluated as INFINITE_RESULT
+ 2,
while taken-during is evaluated as MEDIUM_RESULT + 1. It turns out that the
reason
for this is that not()-clauses are *always* set to INFINITE_RESULT+2.
Obviously, it
is possible to do better.
Changed the approach taken in revision 543, which solves this problem, and
cannot
possibly introduce any new ones. However, it is probably still too conservative.
Original comment by lar...@gmail.com
on 12 Oct 2009 at 11:33
Original comment by lar...@gmail.com
on 12 Oct 2009 at 11:34
Original issue reported on code.google.com by
lar...@gmail.com
on 26 Jul 2009 at 5:23