Re: funciones

Lists: pgsql-es-ayuda
From: "Roberto Cesar Najera" <rob(at)dcaa(dot)unam(dot)mx>
To: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: funciones
Date: 2004-11-23 16:23:25
Message-ID: 00d501c4d178$c46fabb0$8c000a0a@RTP.GOB.MX
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Hola lista

necesito crear una funcion que internamente ejecute lo mismo que \d
nombre_tabla y retorne el resultado del \d nombre_tabla

se hacer funciones quereciben paramentros y que retornan un solo parametro,
el problema es que no se como hacer que regrese todo el resultado talcual lo
manda el \d nombre_tabla

algun comentario ?

de antemano gracias


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

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

> Hola lista
>
>
> necesito crear una funcion que internamente ejecute
> lo mismo que \d
> nombre_tabla y retorne el resultado del \d
> nombre_tabla
>
>
> se hacer funciones quereciben paramentros y que
> retornan un solo parametro,
> el problema es que no se como hacer que regrese todo
> el resultado talcual lo
> manda el \d nombre_tabla
>
>
> algun comentario ?
>
> de antemano gracias
>

lee el mensaje que envie sobre "nombre tabla",
basicamente es psql -E y luego \d tabla

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


From: "Roberto Cesar Najera" <rob(at)dcaa(dot)unam(dot)mx>
To: <pgsql-es-ayuda(at)postgresql(dot)org>
Cc: "Jaime Casanova" <systemguards(at)yahoo(dot)com>
Subject: Re: funciones
Date: 2004-11-23 22:20:11
Message-ID: 013901c4d1aa$9b197980$8c000a0a@RTP.GOB.MX
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

creo que es un choro muy largo .... yo queria crear una funcion para
ahorrarme todo eso, pero tengo el problema de que tipo de dato tiene que
regresar

CREATE FUNCTION atablas (text) RETURNS cstring
AS '
BEGIN
RETURN \d $1
END;
'
LANGUAGE plpgsql;

Esto es valido o como le tendria que hacer ?

de antemaano

Gracias

----- Original Message -----
From: "Jaime Casanova" <systemguards(at)yahoo(dot)com>
To: <>
Sent: Tuesday, November 23, 2004 11:13 AM
Subject: Re: [pgsql-es-ayuda] funciones

> --- Roberto Cesar Najera <rob(at)dcaa(dot)unam(dot)mx> escribió:
>
> > Hola lista
> >
> >
> > necesito crear una funcion que internamente ejecute
> > lo mismo que \d
> > nombre_tabla y retorne el resultado del \d
> > nombre_tabla
> >
> >
> > se hacer funciones quereciben paramentros y que
> > retornan un solo parametro,
> > el problema es que no se como hacer que regrese todo
> > el resultado talcual lo
> > manda el \d nombre_tabla
> >
> >
> > algun comentario ?
> >
> > de antemano gracias
> >
>
> lee el mensaje que envie sobre "nombre tabla",
> basicamente es psql -E y luego \d tabla
>
> 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
>
> ---------------------------(end of broadcast)---------------------------
> TIP 3: si publicas/lees desde Usenet, por favor envía "subscribe-nomal"
> a majordomo(at)postgresql(dot)org para que tus mensajes puedan llegar
> a los suscriptores de la lista


From: "Roberto Cesar Najera" <rob(at)dcaa(dot)unam(dot)mx>
To: "Juanky Moral" <juanky(dot)moral(at)gmail(dot)com>
Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: funciones
Date: 2004-11-23 22:34:37
Message-ID: 015301c4d1ac$9d32d1b0$8c000a0a@RTP.GOB.MX
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Ups, pero eso es mucho choro ..... estaba pensando en una funcion

mas o menos asi

CREATE FUNCTION atable(text) RETURNS text
AS '
BEGIN
RETURN \d $1
END;
'
LANGUAGE plpgsql;

pero en principio tengo problemas con el tipo de dato que regresa

y la otra es que no se si se pueda hacer eso
RETURN \d $1

Por ahi si sabes de algo, pues bienvenido

de antemano gracias
----- Original Message -----
From: "Juanky Moral" <juanky(dot)moral(at)gmail(dot)com>
To: "Roberto Cesar Najera" <rob(at)dcaa(dot)unam(dot)mx>
Sent: Tuesday, November 23, 2004 10:56 AM
Subject: Re: funciones

> Hace unos días alguien preguntó algo parecido. Alvaro Herrera contestó:
>
> entra con: psql -E db_name
> si haces un \d sale la consulta SQL que usa postgres
>
> salu2
>
> On Tue, 23 Nov 2004 10:23:25 -0600, Roberto Cesar Najera
> <rob(at)dcaa(dot)unam(dot)mx> wrote:
> > Hola lista
> >
> > necesito crear una funcion que internamente ejecute lo mismo que \d
> > nombre_tabla y retorne el resultado del \d nombre_tabla
> >
> > se hacer funciones quereciben paramentros y que retornan un solo
parametro,
> > el problema es que no se como hacer que regrese todo el resultado
talcual lo
> > manda el \d nombre_tabla
> >
> > algun comentario ?
> >
> > de antemano gracias
> >
> > ---------------------------(end of broadcast)---------------------------
> > TIP 4: No hagas 'kill -9' a postmaster
> >
>
>
> --
> Juanky Moral
> (desde Valencia, España)


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