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