Alvaro Herrera escribió:
Ing. Marcos Ortiz Valmaseda escribió:

Por ejemplo:
¿Dónde puedo encontrar documentación sobre:
GNU Bison: Construcción del árbol abstracto sintáctico a partir de
la secuencia de tokens producto del parser. (Parsing)

En debian viene en el paquete bison-doc.  No sé que tan relevante llegue
a ser.  Agregar un nuevo nodo no debería ser muy difícil; la manera más
fácil es mirar qué cosas se modifican con algún otro parche que haya
agregado un nuevo nodo a la gramática.

En todo caso, si realmente quieres llegar al fondo del asunto del lexer
y el parser, deberías estudiar sobre construcción de compiladores.

Autotools:
GNU Flex: usado para la división en una secuencia determinada de
tokens de la cadena entrada al parser de PostgreSQL Lexing)

El lexer es lo que convierte una secuencia de caracteres en "tokens".
Por ejemplo si ve la secuencia "select 2131 + 12" lo va a transformar en
una secuencia de este estilo:
        palabra clave SELECT
        número 2131
        operador +
        número 12

Luego le pasa esta lista al analizador, quien lo convierte en un AST
según las reglas que se han definido en el archivo gram.y.


¿Qué significan realmente los parámetros del kernel que muchos
seteamos en el sysctl.conf (Linux) o en el rc.conf (FreeBSD) y qué
relación directa tienen con la asignación de memoria que hace el
gestor?
Dígase: kernel.shmmax, kernel.shmmix, etc

No es relevante.

¿Dónde puedo encontrar información acerca del algoritmo System R
usado por el optimizador de consultas?

Hay una presentación de un profesor de una universidad gringa que
explica muy a grandes rasgos el algoritmo, mira acá:
http://archives.postgresql.org/pgsql-advocacy/2009-12/msg00028.php

¿Por qué cuando se modificao se añade un nodo, hay que actualizar
nodes/equalfuncs.c y nodes/copyfuncs.c?

Porque los nodos deben poder escribirse a disco en forma de texto
(outfuncs.c), comparados con otros nodos (equalfuncs), copiados
(copyfuncs) y leídos de vuelta del formato de outfuncs (readfuncs).  No
todos los nodos necesitan soportarse en todos los archivos; lee los
encabezados de ellos.

Para la documentación, Neil aconseja usar Emacs, pero no soy
fanático a este editor, trabajo con el Vim, ¿Pueden darme
recomendaciones al respecto?

Yo también uso Vim.  Creo que la recomendación más importante es agregar
cscope para que te ayude a "saltar" desde un archivo a otro, por ej.
para ver tal o cual definición de una función.

En la presentación, Neil como ejemplo la inclusión de la cláusula
TABLEXAMPLE a la gramática. A la hora de agregar esto a la
gramática. ¿Cuál es la conversión para darle un determinado número
al token?

No te preocupas del número que se asigna; el generador de la gramática
(bison) se encarga de eso.

Luego de esto, ¿Dónde se hace la modificación de los nodos del árbol
del parser para permitir que las nuevas cláusulas sean codificadas
en el árbol de sintáxis abstracto (AST)?

Lo primero es agregar a la gramática, y por lo tanto a los nodos.  Luego
tienes que ver por dónde hacer pasar ese nodo en el "traffic cop", en
este caso utility.c, y de ahí me imagino que tiene que despacharse hasta
el código que implementa FDW.

Ok, hermano, tomados los consejos.
Ahora hay que estudiar completo el estándar para comprenderlo bien, y entonces luego ayudar en esto.
Saludos

--
-------------------------------------------------------- -- Ing. Marcos Luís Ortíz Valmaseda --
-- Twitter: http://twitter.com/@marcosluis2186        --
-- FreeBSD Fan/User                                   --
-- http://www.freebsd.org/es                          --
-- Linux User # 418229                                --
-- Database Architect/Administrator                   --
-- PostgreSQL RDBMS                                   --
-- http://www.postgresql.org                          --
-- http://planetpostgresql.org                        --
-- http://www.postgresql-es.org                       --
--------------------------------------------------------
-- Data WareHouse -- Business Intelligence Apprentice --
-- http://www.tdwi.org                                --
-------------------------------------------------------- -- Ruby on Rails Fan/Developer --
-- http://rubyonrails.org                             --
--------------------------------------------------------

Comunidad Técnica Cubana de PostgreSQL
http://postgresql.uci.cu
http://personas.grm.uci.cu/+marcos Centro de Tecnologías de Gestión de Datos (DATEC) Contacto: Correo: [email protected] Telf: +53 07-837-3737 +53 07-837-3714 Universidad de las Ciencias Informáticas http://www.uci.cu


--
TIP 8: explain analyze es tu amigo

Responder a