Re: returns set of y nombres de columna

From: "Guillermo E(dot) Villanueva" <guillermovil(at)gmail(dot)com>
To: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
Cc: pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>, Jaime Casanova <jaime(at)2ndquadrant(dot)com>
Subject: Re: returns set of y nombres de columna
Date: 2015-03-19 13:20:57
Message-ID: CANm+PCDtkGZa3rukBBhJ9HzNiG_9VRY7A3RQz-kqY2KO-HL03A@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Despues del comentario de Martín Díaz pensé que podía quedar "basura" en el
catálogo por lo que le eché un vistazo y me apareció lo siguiente:

nacer=# select * from pg_proc where oid=16410;
-[ RECORD 1
]---+------------------------------------------------------------------------------------------
proname | periodos
pronamespace | 16394
proowner | 10
prolang | 11574
procost | 100
prorows | 1000
provariadic | 0
proisagg | f
proiswindow | f
prosecdef | f
proisstrict | f
proretset | t
provolatile | v
pronargs | 0
pronargdefaults | 0
prorettype | 1114
proargtypes |
proallargtypes | {1114}
*proargmodes | {t}*
*proargnames | {per_fecha}*
proargdefaults |
prosrc |
| declare
| lts_minimo timestamp;
| lts_maximo timestamp;
| begin
| select max(periodo), min(periodo) into
lts_maximo, lts_minimo from nacer.historicotemp;
| RETURN QUERY select * from
generate_series(lts_minimo, lts_maximo, '1 month'::interval);
| end;
|
probin |
proconfig |
proacl |

Marcado en azul se puede ver que si está {per_fecha} :
Sospecho que la función ya existía con un parámetro de salida o return de
tipo tabla y luego hice un create nuevo, esperando que por sobrecarga cree
una nueva función con el mismo nombre, pero contrario a eso escribió sobre
la misma fila del catálogo dejando basura. Puede ser Alvaro?

CREATE OR REPLACE FUNCTION nacer.periodos()
RETURNS SETOF timestamp without time zone AS
$BODY$
declare
lts_minimo timestamp;
lts_maximo timestamp;
begin
select max(periodo), min(periodo) into lts_maximo, lts_minimo from
nacer.historicotemp;
RETURN QUERY select * from generate_series(lts_minimo, lts_maximo, '1
month'::interval);
end;
$BODY$
LANGUAGE plpgsql

No hay ninguna otra función ni vista ni tabla con el mismo nombre.

A menos que Alvaro pida que no borre aún para hacer alguna prueba mas, lo
que voy a hacer es un drop y luego la crearé de nuevo para ver que pasa.

Guillermo Villanueva

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Romero, Fernando 2015-03-19 15:08:04 Consulta sobre transacciones
Previous Message Marcos Ortiz 2015-03-19 12:25:33 PostgreSQL 9.4.1 ya está disponible en Amazon RDS