Re: catalogo del sistema (hacer una inserción)

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Carmen Martinez <carmenmtezcruz(at)yahoo(dot)es>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: catalogo del sistema (hacer una inserción)
Date: 2007-07-10 19:53:11
Message-ID: 20070710195311.GA19521@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Carmen Martinez escribió:
> Pues bien, realmente quiero insertar esta tabla (que no es sólo una
> tabla sino un conjunto de ellas) basicamente para tener registradas
> todas aquellas tablas y columnas de la base de datos que utilicen
> nuestros nuevos tipos de datos (información difusa). Además habrá otro
> conjunto de tablas que serviran para almacenar las estructuras y
> definiciones de estos tipos de datos. El caso es que estas tablas han
> de estar, para que todo nuestro planteamiento funcione, y teóricamente
> estas tablas deberían estar en el catálogo del sistema.
>
> Entonces según tu, deduzco que tendría dos opciones:
> - O insertar esta información en otro esquema que no sea el pg_admin
> - O insertar esta información a través de modificar la propia
> implementación de Postgresql, usando ¿¿¿las librerías de C???
>
> ¿¿Estoy en lo cierto?? (a lo mejor con la segunda opción me estoy equivocando).

En realidad tienes más opciones.

1. podrias hacer que tus funciones/operadores funcionaran usando
solamente declaraciones SQL, y escribiendo funciones en PL/pgSQL. Luego
usas cosas como CREATE TYPE, CREATE OPERATOR, etc.

2. podrias hacer un modulo de extension de Postgres, similar (en
espiritu) a los modulos contrib. Muy probablemente tendrias que
escribir codigo en C para implementar la funcionalidad de informacion
difusa.

3. Podrias modificar el codigo del backend, y por lo tanto ya no seria
un Postgres estandar sino un Postgres "modificado". Si bien aqui
tambien tendrias que escribir codigo en C, es diferente de lo anterior
en que tendrias que recompilar el codigo de Postgres en su totalidad.
Pero si quieres conseguir que (por ejemplo) el optimizador de consultas
sea capaz de encontrar un plan óptimo para procesar tus nuevos tipos de
datos, posiblemente necesitarías esto.

Cual de los caminos te conviene depende de los objetivos de largo plazo.
¿Qué es esto, un proyecto de investigación? ¿Un experimento para una
tesis doctoral? ¿Un esfuerzo de una empresa para implementar
funcionalidad que necesita? ¿Deseas que tu funcionalidad esté luego
disponible para otras personas, o te es suficiente con hacerla andar en
una defensa de tesis doctoral? ¿Esta funcionalidad, es suficientemente
general como para querer desear incluirla en el codigo oficial de
Postgres, o estarias satisfecha con mantener un proyecto externo? ¿En
qué lenguaje tienes pensado implementar tu sistema de información
difusa?

Por lo que has dicho hasta aquí, yo tengo la impresión de que la opción
(2) es la que más te acomodaría.

--
Alvaro Herrera http://www.amazon.com/gp/registry/5ZYLFMCVHXC
"On the other flipper, one wrong move and we're Fatal Exceptions"
(T.U.X.: Term Unit X - http://www.thelinuxreview.com/TUX/)

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Espartano 2007-07-10 20:24:26 Re: PostgreSQL en Windows OT (una opinion)
Previous Message Edwin Quijada 2007-07-10 18:32:55 Re: ayuda con DBI-LINK