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