Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-es-ayuda by date

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

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group