Adquiriendo informacion del schema de una tabla/vista con libpq

From: Eduardo Morras <emorrasg(at)yahoo(dot)es>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Adquiriendo informacion del schema de una tabla/vista con libpq
Date: 2015-05-01 15:28:30
Message-ID: 20150501172830.4d047b25c2c707a36e4b4856@yahoo.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


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.

Actualmente uso una consulta similar a esta:

SELECT DISTINCT
a.attnum as num,
a.attname as name,
format_type(a.atttypid, a.atttypmod) as typ,
FROM pg_attribute a
JOIN pg_class pgc ON pgc.oid = a.attrelid
WHERE a.attnum > 0 AND pgc.oid = a.attrelid
AND pg_table_is_visible(pgc.oid)
AND NOT a.attisdropped
AND pgc.relname = 'TABLA1'
ORDER BY a.attnum;

pero solo sirve si es una tabla, ademas tengo que hacer la consulta y parsear los resultados.

¿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.

Muchas Gracias

--- ---
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

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jaime Casanova 2015-05-01 22:41:48 Re: Adquiriendo informacion del schema de una tabla/vista con libpq
Previous Message Jaime Casanova 2015-04-30 06:00:50 Re: CONEXIONES A PGPOOL