Abstract
This paper considers the efficient evaluation of recursive queries expressed using Horn clauses. We define sideways information passing formally and show how a query evaluation algorithm may be defined in terms of sideways information passing and control. We then consider a class of information-passing strategies that suffices to describe most query evaluation algorithms in the database literature, and show that these strategies may always be implemented by rewriting a given program and evaluating the rewritten program bottom-up. We describe in detail several algorithms for rewriting a program. These algorithms generalize the counting and magic-sets algorithms to work with arbitrary programs. Safety and optimality of the algorithms are also considered.
| Original language | English |
|---|---|
| Pages (from-to) | 255-299 |
| Number of pages | 45 |
| Journal | Journal of Logical and Algebraic Methods in Programming |
| Volume | 10 |
| Issue number | 3-4 |
| DOIs | |
| State | Published - 1991 |