Re: Sobre la implementación de SQL/MED en PostgreSQL

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: "Ing(dot) Marcos Ortiz Valmaseda" <mlortiz(at)uci(dot)cu>
Cc: POSTGRESQL - Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Sobre la implementación de SQL/MED en PostgreSQL
Date: 2010-03-11 19:55:12
Message-ID: 20100311195512.GB3512@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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/482D1632.8010507@sigaev.ru

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Miguel Angel Hernandez Moreno 2010-03-11 20:06:36 Re: PGPOOL replica
Previous Message Ing. Marcos Ortiz Valmaseda 2010-03-11 19:40:37 Re: Sobre la implementación de SQL/MED en PostgreSQL