[
Lists Home |
Date Index |
Thread Index
]
> -----Original Message-----
> From: Michael Kay [mailto:michael.h.kay@ntlworld.com]
>
> The most important optimization in database languages is
> selection of indexes. By definition this needs to be done
> statically: if you have to look at the data in order to
> decide whether to use an index, the index serves no purpose.
>
> If the query is
>
> employee[salary > 100000]
>
> then to use an index on salary, at the very least you have to
> know that the index was built using the same assumptions
> about the ">" operator as the query is using. So some kind of
> static analysis is necessary. And some of the characteristics
> of the XPath 1.0 dynamic typing rules (which say, for example
> that "1.0" = "1" is false, but "1.0" <= "1" is true) become a
> major embarassment.
If queries are to be handled any way sanely, then '<' is an operator
over a set of types, not a type. If the operator defines set membership,
that's where you look for type information in the first case, not in the
operands.
And if we allow operator overloading to spanner the query semantics in
the first place, I'm not wholly sympathetic to demands for static typing
as a workaround.
Bill de hÓra
..
Propylon
www.propylon.com
|