Lists Home |
Date Index |
Your description of what you want out of the XQuery static type system again differ from what I've heard other XML Query working group members state. I'd really love for the XML Query working group to answer some of the questions asked earlier in this thread so one knows exactly what we shoul dexpect from the XQuery type system in implementations.
From: Michael Kay [mailto:email@example.com]
Sent: Mon 7/8/2002 3:29 AM
To: 'Joe English'; firstname.lastname@example.org
Subject: RE: [xml-dev] XQuery and DTD/Schema?
> Static typing can help optimize low-level operations that are
> close to the machine (for instance this is why as a rule SML
> is more efficient than Scheme), but languages that do heroic
> optimizations -- APL, SQL, and Common Lisp for instance --
> tend to be dynamically typed. Static typing is neither
> necessary nor sufficient.
> What optimization strategies does the XQuery type system
> enable? Has anyone implemented, or even just designed, a
> database access optimizer that takes advantage of it?
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.
I have argued in the past that the static analysis you need to do for
optimization isn't precisely the same as you do for static typing of
programming languages; but it certainly has a lot in common.
Tamino's optimizer certainly uses this kind of analysis. When you are
dealing with terabytes of data, there is no other option.
The xml-dev list is sponsored by XML.org <http://www.xml.org>, an
initiative of OASIS <http://www.oasis-open.org>
The list archives are at http://lists.xml.org/archives/xml-dev/
To subscribe or unsubscribe from this list use the subscription