Tarboles De Consulta
Es una representación interna de una instrucción Sql donde se almacenan de modo separado las partes menores que la componen. Estos árboles de consultas son visiblescuando se arranca el motor de Postgres con nivel de debug 4 y se teclea query en la interface de usuario interactivo. Las acciones de las reglas almacenadas en el catalogo del sistema pg_rewrite estánalmacenadas también como árboles de consultas.
Las partes de un árbol de consulta son:
•El tipo de comando (command type). Este es un valor sencillo que nos dice el comando que produjo el árbolde traducción (select, insert, update, delete).
•La tabla de rango (range table). La tabla de rango es una lista de las relaciones que se utilizan en la consulta. En una instrucción Select, son lasrelaciones dadas tras la palabra clave from. Toda entrada en la tabla del rango identifica una tabla o vista, y dice el nombre por el que se identifica en las otras partes de la consulta. En un árbol deconsulta, las entradas de la tabla de rango se indican por un índice en lugar de por su nombre como estarían en una instrucción Sql. Esto puede ocurrir cuando se han mezclado las tablas de rangos dereglas.
• La relación-resultado (result relation). Un índice a la tabla de rango que identifica la relación donde irán los resultados de la consulta. Las consultas Select normalmente no tienen unarelación resultado. El caso especial de una “select into” es principalmente idéntica a una secuencia Create Table, Insert...Select. En las consultas insert, update y delete, la relación resultado es la tabla(o vista) donde tendrán efecto los cambios.
• La lista objetivo (target list) La lista objetivo es una lista de expresiones que definen el resultado de la consulta. En el caso de una instrucciónselect, las expresiones son las que construyen la salida final de la consulta. Son las expresiones entre las palabras clave select y from.
Las consultas “delete” no necesitan una lista objetivo...
Regístrate para leer el documento completo.