Re: funciones

From: Jaime Casanova <systemguards(at)yahoo(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: funciones
Date: 2004-11-24 04:44:21
Message-ID: 20041124044421.20749.qmail@web50003.mail.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

--- Roberto Cesar Najera <rob(at)dcaa(dot)unam(dot)mx> escribió:

> Ups, pero eso es mucho choro ..... estaba pensando
> en una funcion
...
> pero en principio tengo problemas con el tipo de
> dato que regresa
>

ingresas al programa llamado psql usando la opcion -E
en tu instalacion de postgresql.
-E
--echo-hidden
Echo the actual queries generated by \d and other
backslash commands.
You can use this if you wish to include similar
functionality into your own programs. This is
equivalent to setting the variable ECHO_HIDDEN from
within psql.

en mi maquina usando pgsql v8.0.0beta4 me da estos
selects.
deberias hacerlo en tu maquina si tienes otra version
de pgsql porque la version 8 incluye tablespaces (¿y
catalogos?, Alvaro) que no habia en otras versiones
asi que no vas a poder usar estos selects en tu
programa.

SELECT c.oid, n.nspname, c.relname
FROM pg_catalog.pg_class c LEFT JOIN
pg_catalog.pg_namespace n
ON n.oid = c.relnamespace
WHERE pg_catalog.pg_table_is_visible(c.oid)
AND c.relname ~ '^rec_t_transaccion$'
ORDER BY 2, 3;

SELECT relhasindex, relkind, relchecks, reltriggers,
relhasrules,
relhasoids , reltablespace
FROM pg_catalog.pg_class
WHERE oid = '243593';

SELECT a.attname, pg_catalog.format_type(a.atttypid,
a.atttypmod),
(SELECT substring(d.adsrc for 128)
FROM pg_catalog.pg_attrdef d
WHERE d.adrelid = a.attrelid
AND d.adnum = a.attnum
AND a.atthasdef
), a.attnotnull, a.attnum
FROM pg_catalog.pg_attribute a
WHERE a.attrelid = '243593' AND a.attnum > 0 AND NOT
a.attisdropped
ORDER BY a.attnum;

SELECT c2.relname, i.indisprimary, i.indisunique,
i.indisclustered,
pg_catalog.pg_get_indexdef(i.indexrelid, 0,
true)
FROM pg_catalog.pg_class c, pg_catalog.pg_class c2,
pg_catalog.pg_index i
WHERE c.oid = '243593'
AND c.oid = i.indrelid
AND i.indexrelid = c2.oid
ORDER BY i.indisprimary DESC, i.indisunique DESC,
c2.relname;

SELECT pg_catalog.pg_get_constraintdef(r.oid, true),
conname
FROM pg_catalog.pg_constraint r
WHERE r.conrelid = '243593'
AND r.contype = 'c';

SELECT t.tgname, pg_catalog.pg_get_triggerdef(t.oid)
FROM pg_catalog.pg_trigger t
WHERE t.tgrelid = '243593'
AND (not tgisconstraint OR NOT EXISTS (SELECT 1
FROM pg_catalog.pg_depend d JOIN
pg_catalog.pg_constraint c ON (d.refclassid =
c.tableoid AND d.refobjid = c.oid) WHERE d.classid
= t.tableoid AND d.objid = t.oid AND d.deptype = 'i'
AND c.contype = 'f'));

SELECT conname, pg_catalog.pg_get_constraintdef(oid,
true) as condef
FROM pg_catalog.pg_constraint r
WHERE r.conrelid = '243593' AND r.contype = 'f';

SELECT c.relname
FROM pg_catalog.pg_class c, pg_catalog.pg_inherits i

WHERE c.oid=i.inhparent
AND i.inhrelid = '243593'
ORDER BY inhseqno ASC;

Ahora, me parece por tu pregunta (corrigeme si me
equivoco) que no te has tomado la molestia de leer los
manuales ni el FAQ. la pregunta era razonable (¿como
obtener el mismo resultado de \d?) pero al parecer no
sabes lo que es el psql o si lo sabes te dio pereza
seguir el sencillo consejo de hacer psql -E en tu
maquina y copiar los selects, aparte de que no sabes
las sintaxis de los lenguajes como el plpgsql.

> y la otra es que no se si se pueda hacer eso
> RETURN \d $1
respondiendo tu ultima pregunta no puedes hacer eso

Atentamente,
Jaime Casanova

_________________________________________________________
Do You Yahoo!?
Información de Estados Unidos y América Latina, en Yahoo! Noticias.
Visítanos en http://noticias.espanol.yahoo.com

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jaime Casanova 2004-11-24 04:54:55 Re: Nuevamente con la Orientacion a Objetos
Previous Message Manuel Sugawara 2004-11-23 23:17:32 Re: Replica / Sincronizacion