A database query compiler and compilation method has special facilities for
compiling a query that includes a Rows Since sequence function, Rows Since
(search condition). A query normalizer includes a Rows Since function
normalizer for normalizing the Rows Since sequence function. The Rows
Since function normalizer parses the search condition of the Rows Since
function to identify each reference to information from a previously
access row and converts each such identified reference into an Offset
sequence function, Offset(argument, index). The argument of the Offset
sequence function is a specified function of the identified information
from a previously accessed row of the table. The previously accessed row
has a position that is index rows before the current row referenced by the
cursor for the table. The query compiler places the resulting normalized
search condition in a search loop that traverses successively earlier rows
in the table until it finds a row that satisfies the search condition. An
offset sequence function compiler, compiles each Offset sequence function,
Offset(argument, index), in the normalized database query into a compiled
set of instructions, including instructions for storing and reading the
auxiliary fields to and from a buffer that is separate from the table. The
buffer is preferably stored in volatile, main memory. As a result, when
the Offset sequence function is executed, information from a previous is
accessed without having to change the cursor position for the table.
Un método del recopilador y de la compilación de la pregunta de la base de datos tiene instalaciones especiales para compilar una pregunta que incluya filas desde la función de la secuencia, filas desde (condición de la búsqueda). Un normalizador de la pregunta incluye filas desde el normalizador de la función para normalizar las filas desde la función de la secuencia. Las filas puesto que el normalizador de la función analiza la condición de la búsqueda de las filas puesto que función para identificar cada referencia a la información previamente de una fila del acceso y convierte cada tal referencia identificada en una función compensada de la secuencia, Offset(argument, índice). La discusión de la función compensada de la secuencia es una función especificada de la información identificada de una fila previamente alcanzada de la tabla. La fila previamente alcanzada tiene una posición que sea filas del índice antes de la fila actual referida por el cursor para la tabla. El recopilador de la pregunta pone la condición normalizada de la búsqueda que resulta en un lazo de la búsqueda que atraviese filas sucesivamente anteriores en la tabla hasta que encuentra una fila que satisfaga la condición de la búsqueda. Un recopilador compensado de la función de la secuencia, compila cada función compensada de la secuencia, Offset(argument, índice), en la pregunta normalizada de la base de datos en un sistema compilado de instrucciones, incluyendo las instrucciones para almacenar y leer los campos auxiliares a y desde un almacenador intermediario que esté a parte de la tabla. El almacenador intermediario se almacena preferiblemente en memoria volátil, central. Consecuentemente, cuando se ejecuta la función compensada de la secuencia, la información de un anterior está alcanzada sin tener que cambiar la posición del cursor para la tabla.