Valeu Fabio..., como eu citei eu não manjo, mas aqui tenho que fazer papel
de DBA e tudo mais, "sabcomé", então nem sobra tempo pra estudar essas
funções detalhadamente, as dicas aqui da lista são excelentes...
Vou tratar de mudar a função :)

Mais uma vez, muito obrigado...


Em 6 de agosto de 2013 08:50, Fábio Telles Rodriguez <fabio.tel...@gmail.com
> escreveu:

> Marcelo, lamento lhe informar.... mas você está fazendo isso do jeito
> errado. Não é que sua função não funcione, mas por princípio não
> devemos substituir um SQL puro por um PL. Quando você faz isso, o
> otimizador de desempenho do postgres vai para o vinagre. Além disso,
> você declarou sua função como VOLATILE. Se declarar como IMMUTABLE,
> veria ganhos imediatos, vide:
> http://www.postgresql.org/docs/current/static/sql-createfunction.html
>
> Eu escrevi um pouco sobre como trabalhar com datas aqui:
>
> http://savepoint.blog.br/brincando-com-algumas-funcoes-com-data-no-postgresql/
>
> 2013/8/5 Marcelo da Silva <marc...@ig.com.br>:
> > Desculpa estava esquecendo de uma linha...
> >
> > Agora está OK
> >
> > -- Function: fproxdiautil(date)
> >
> > -- DROP FUNCTION fproxdiautil(date);
> >
> > CREATE OR REPLACE FUNCTION fdiasuteis(pData date, pDias integer)
> >   RETURNS date AS
> > $BODY$
> > declare
> >   Dia integer;
> >   SomaDias integer;
> >   NovaData date;
> > Begin
> >   SomaDias = 0;
> >   NovaData = pData;
> >   while (SomaDias < pDias) loop
> >     NovaData = NovaData + 1;
> >     Dia = extract(dow from NovaData);
> >     while (Dia = 0 or Dia = 6) loop
> >       NovaData = NovaData + 1;
> >       Dia = extract(dow from NovaData);
> >     end loop;
> >     SomaDias = SomaDias + 1;
> >   end loop;
> >   return fproxdiautil(NovaData);
> > end;
> > $BODY$
> >   LANGUAGE plpgsql VOLATILE
> >   COST 100;
> > ALTER FUNCTION fdiasuteis(date, integer)
> >   OWNER TO postgres;
> >
> >
> > Marcelo Silva
> >
> > _______________________________________________
> > pgbr-geral mailing list
> > pgbr-geral@listas.postgresql.org.br
> > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
> >
>
>
>
> --
> Atenciosamente,
> Fábio Telles Rodriguez
> blog: http://savepoint.blog.br
> e-mail / gtalk / MSN: fabio.tel...@gmail.com
> Skype: fabio_telles
>
> Timbira - A empresa brasileira de Postgres
> http://www.timbira.com.br
> _______________________________________________
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>



-- 
Marcelo Silva
----------------------------------------------------------------
Desenvolvedor Delphi / PHP
My Postgres database
Cel.: (11) 99693-4251
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Reply via email to