From: | Eduardo Morras <emorrasg(at)yahoo(dot)es> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Adquiriendo informacion del schema de una tabla/vista con libpq |
Date: | 2015-05-02 09:40:10 |
Message-ID: | 20150502114010.8f1843cb2b4bdb9bb36fb623@yahoo.es |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
On Fri, 1 May 2015 17:41:48 -0500
Jaime Casanova <jaime(at)2ndquadrant(dot)com> wrote:
> 2015-05-01 10:28 GMT-05:00 Eduardo Morras <emorrasg(at)yahoo(dot)es>:
> >
> > Muy buenas,
> >
> > Estoy desarrollando una extension en C para una aplicacion y
> > necesito obtener el schema de una tabla o vista. El nombre de la
> > tabla/vista lo conozco solo en tiempo de ejecucion, ademas tampoco
> > se si es una tabla o una vista.
>
> Y si usas las vistas information_schema.tables e
> information_schema.columns?
>
> En el primero puedes ver la columna table_type para saber si 'BASE
> TABLE' o 'VIEW', en la segunda puedes ver nombre, posición y tipo de
> dato de cada columna sea tabla o vista.
Esa es otra opcion que me parece mas acertada, ya que puedo usar la misma query para ambas.
> > ¿Hay alguna forma de hacerlo usando libpq de forma directa llamando
> > a una funcion? Algo como PG_get_table_info(char * nombretabla, int
> > *num_col, char **nombre_columna, int *tipo_columna) o que devuelva
> > un *struct con dicha informacion?
> >
> > No he encontrado nada en la documentacion del capitulo 31, aparte
> > de consultar directamente a las tablas del sistema.
> >
>
> No he encontrado como hacerlo con una función de libpq
He estado buscando más en el codigo de libpq (src/interfaces/libpq/fe-exec.c lineas 2710 y siguientes), y creo que haciendo un:
SELECT * FROM Tabla1 LIMIT 1;
Y mirando PGResult->attDescs[field_num].typid .format , .name etc... puedo obtener la informacion de forma directa, aunque leer datos de PGResult directamente no esta soportado ya que puede cambiar de una version a otra :( Lo que me ahorro es parsear la consulta, añadiendo un monton de codigo.
Opiniones de hacerlo con PGResult?
> --
> Jaime Casanova www.2ndQuadrant.com
> Professional PostgreSQL: Soporte 24x7 y capacitación
--- ---
Eduardo Morras <emorrasg(at)yahoo(dot)es>
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda
From | Date | Subject | |
---|---|---|---|
Next Message | Romero hotmail | 2015-05-04 06:31:25 | |
Previous Message | Jaime Casanova | 2015-05-01 22:41:48 | Re: Adquiriendo informacion del schema de una tabla/vista con libpq |