Alvaro, siguiendo tu consejo de generate_series, intenté crear una función ,
pero .... algo estoy haciendo mal en la sintaxis plpgsql ya que da error:
La función es:
CREATE OR REPLACE FUNCTION nacer.periodos() RETURNS TABLE (per_fecha
timestamp) AS
$BODY$
declare
lts_minimo timestamp;
lts_maximo timestamp;
begin
select max(periodo), min(periodo) into lts_maximo, lts_minimo from
nacer.historicotemp;
select * from generate_series(lts_minimo, lts_maximo, '1 month');
end;
$BODY$
  LANGUAGE plpgsql;


El error es:
ERROR:  query has no destination for result data
HINT:  If you want to discard the results of a SELECT, use PERFORM instead.
CONTEXT:  PL/pgSQL function "periodos" line 6 at SQL statement

********** Error **********

ERROR: query has no destination for result data
SQL state: 42601
Hint: If you want to discard the results of a SELECT, use PERFORM instead.
Context: PL/pgSQL function "periodos" line 6 at SQL statement
Saludos

~~~~~~~~~~~~~~~~
Guillermo Villanueva


El 25 de mayo de 2011 23:57, Alvaro Herrera <[email protected]>escribió:

> Excerpts from Guillermo Villanueva's message of mié may 25 21:44:13 -0400
> 2011:
> > Gracias por sus respuestas nuevamente.
> > Alvaro, tiene tantas cosas interesantes postgres que creo que lo que
> > mencionás no estaría de mas.
> > De todos modos lo resolví haciendo lo que sugería Silvio, tomando el max
> y
> > el min. Aparentemente ahí si usa el índice porque devuelve los valores
> > rapidísimo.
> > Una vez que tengo max y min, genero los valores del intervalo desde el
> > cliente (PHP)
>
> ¿Y qué tal generate_series?
>
> --
> Álvaro Herrera <[email protected]>
>

Responder a