<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">\firstpage
\begin{abstract}
{\itshape
From our experience, current rule-based query optimizers do not provide
a very intuitive and well-defined framework to define rules and
actions.  To remedy this situation, we propose an extensible and
structured algebraic framework called Prairie for specifying rules.
Prairie facilitates rule-writing by enabling a user to write rules and
actions more quickly, correctly and in an easy-to-understand and
easy-to-debug manner.

Query optimizers consist of three major parts: a search space, a cost
model and a search strategy.  The approach we take is only to develop
the algebra which defines the search space and the cost model and use
the Volcano optimizer-generator as our search engine.  Using Prairie as
a front-end, we translate Prairie rules to Volcano to validate our
claim that Prairie makes it easier to write rules.

We describe our algebra and present experimental results which
show that using a high-level framework like Prairie to design
large-scale optimizers does not sacrifice efficiency.
}
\end{abstract}
</pre></body></html>