Re: [Pgsql-ayuda] OID de un registro. Virus en "pgsql-ayuda.mbox"

From: Armando Maldonado <amaldonado(at)dportales(dot)cl>
To: pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx
Subject: Re: [Pgsql-ayuda] OID de un registro. Virus en "pgsql-ayuda.mbox"
Date: 2004-02-13 12:32:32
Message-ID: 200402130932.32945.amaldonado@dportales.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Cuando tengo dudas de donde estan cada guardadas las cosas dentro de la DB lo
que hago consulto el programa pg_dump.c ya que este programa lo que hace
genera consultas SQL para extraer la información triggers, indices , tus
oids, etc.

Mmmm con respento a tú pregunta no pude crear una funcion ya que el lenguaje
plpgsql tiene problemas con las variables con referencias
ejemplos

primer ejemplo que estaba haciendo
-------------------------------------------------------------------------------------------------------
CREATE FUNCTION "que_oid" (integer) RETURNS text AS '
DECLARE
Registro RECORD;
Registro2 RECORD;
el_oid ALIAS FOR $1;
dat text;
BEGIN
FOR Registro IN select c.Relname from pg_class c where Relkind='r' and
Relname not like '%pg%' LOOP
select oid INTO Registro2 from Registro.Relname where
oid=el_oid;
IF FOUND THEN
RETURN Registro.Relname;
END IF;
END LOOP;
' LANGUAGE 'plpgsql';
---------------------------------------------------------------

otro ejemplo

DROP FUNCTION que_oid2 (text);
CREATE FUNCTION que_oid2 (text) RETURNS text AS '
DECLARE
el_oid ALIAS FOR $1;
dato text;
Reg1 RECORD;
Reg2 RECORD;
comunas text;
BEGIN
FOR Reg2 IN SELECT * FROM pg_class WHERE Relkind=''r'' AND Relname not
like ''%pg%'' LOOP
comunas:=Reg2.Relname;
FOR Reg1 IN SELECT oid,* FROM comunas LOOP
return Reg1.oid;
END LOOP;
--return ''select * from ''||tabla||'' where oid=''||el_oid;
--dato:=(''select oid from ''||tabla||'' where oid=''||el_oid);
--select oid INTO Reg1 from tabla where oid=el_oid;
--IF dato IS NOT NULL THEN
--IF FOUND THEN
--return tabla;
--END IF;
END LOOP;
RETURN null;
END;
' LANGUAGE 'plpgsql';

a me aburrí

pero lo que puedes hacer es un promama en C o php

que haga lo siguiente

select c.Relname from pg_class c where Relkind='r' and Relname not like
'%pg%';

luego recorrer en un FOR las tuplas con el nombre de las tablas

y crear el otro dentro del for

select from $tabla where oid=$oid

y si existe retornar el $tabla
El Jueves 12 Febrero 2004 07:14, Cuevas Luis escribió:
> Hola amigos/as como ustedes saben al ocurrir una
> operación de insertar automaticamente se le asigna un
> OID al nuevo registro insertado.
> Mis preguntas son:
>
> 1-Existe alguna tabla del sistema donde se pueda
> acceder a los OID de los registros. (OJO, no de las
> columnas)
> 2- Puedo saber en que tabla esta insertado un registro
> a partir de su OID. :-)
>
> Otro aparte. El fichero "pgsql-ayuda.mbox" colocado
> para descargar en el sitio de la lista y que contiene
> todos los mensajes de la lista tiene un virus. En
> realidad no es un virus es una vulnerabilidad
> "Exploit/iFrame", que como es lógico afecta a
> Windows...
>
> Gracias
> Saludos
> Luis
>
>
> __________________________________
> Do you Yahoo!?
> Yahoo! Finance: Get your refund fast by filing online.
> http://taxes.yahoo.com/filing.html
> _______________________________________________
> Pgsql-ayuda mailing list
> Pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx
> http://tlali.iztacala.unam.mx/mailman/listinfo/pgsql-ayuda

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Armando Maldonado 2004-02-13 12:34:24 Re: [Pgsql-ayuda] Cluster de postgres
Previous Message Rafael Vigata 2004-02-13 08:52:05 RE: [Pgsql-ayuda] Full join de tres tablas