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.

-- 
Alvaro Herrera       Vendo parcela en Valdivia:
http://www.portalinmobiliario.com/propiedades/fichas.asp?PropID=749682
Tom: There seems to be something broken here.
Teodor: I'm in sackcloth and ashes...  Fixed.
        http://archives.postgresql.org/message-id/[email protected]
--
TIP 1: para suscribirte y desuscribirte, visita 
http://archives.postgresql.org/pgsql-es-ayuda

Responder a