Pessoal:
Enviei a mensagem a baixo ontem e não encontrei nenhuma resposta. Acho que o
ponto levantado é importante para que as pessoas sintam-se confiantes na hora
de uma atualização. Assim eu gostaria de sugerir que alguém (talvez o
moderador, se houver) possa tecer algum comentário.
Antecipo agradecimentos,
Sergio Medeiros Santi
Trabin Software & Consulting
53 3227 4157 - 53 9982 9009
----- Original Message -----
From: Sergio Medeiros Santi
To: Grupo de Usuários do PostgreSQL no Brasil
Sent: Tuesday, March 20, 2007 2:00 PM
Subject: [PostgreSQL-Brasil] PostgreSQL v8.2
Pessoal:
Um pouco após o lançamento da versão 8.2 correu nesta lista alguns relatos de
problemas de performance após a atualização. Não sei se em linux ou windows. O
fato é que mantive a 8.1.2 que vinha usando e somente na última semana
atualizei para a 8.1.6. Agora estão começando a aparecer comentários sobre a
8.3 que não sei se já tem previsão de lançamento.
O fato é o seguinte: quem teve problemas de performance quando passou a
utilizar a 8.2 já conseguiu resolver estes problemas? Quais eram e como foram
resolvidos? Alguém pode me dar motivos para atualizar para a 8.3? E para a 8.3?
Antecipo agradecimentos,
Sergio Medeiros Santi
Trabin Software & Consulting
53 3227 4157 - 53 9982 9009
----- Original Message -----
From: Alessandro Pedroso (Pedrosinho)
To: Grupo de Usuários do PostgreSQL no Brasil
Sent: Sunday, March 18, 2007 1:35 PM
Subject: Re: [PostgreSQL-Brasil] Dias da Semana
Rodrigo
Bacana sua abordagem com o array.
Gostaria se possível que esclarecesse o seu "repúdio" com o CASE a título
de informação, sei que ele torna a consulta mais pesada em algumas situações,
porém em certas ocasiões uso o CASE como um "Binary OR" dentro de clausulas
WHERE com um ganho de performance significativo em relação a um filtro com AND
OR (que também é oneroso).
Seria um caso para a criação de um operador como o "?" do C ? (se é que ele
não existe)
Aproveitando a deixa.
Teremos um stand do PostgreSQL no FISL?
Moro em Porto Alegre posso contribuir em algo se precisar.
[]'s Pedrosinho
----- Original Message -----
From: Rodrigo Hjort
To: Grupo de Usuários do PostgreSQL no Brasil
Sent: Saturday, March 17, 2007 8:38 PM
Subject: Re: [PostgreSQL-Brasil] Dias da Semana
Pessoal,
Já que querem usar a cláusula CASE (a qual repudio veementemente), por
que não usam-na de outra forma [1], que onera um pouco menos o SGBD? É o
análogo de se trocar um IF-ELSEIF-...-ELSEIF por um SWITCH CASE. Além disso,
usar as funções extract() ou date_part() para retornar o dia da semana [2] é
bem mais elegante e seguro do que usar uma função de formatação/transformação
como o to_char().
A consulta poderia ficar assim:
SELECT
CASE extract(dow from now())
WHEN 0 THEN 'domingo'
WHEN 1 THEN 'segunda'
-- ...
WHEN 6 THEN 'sábado'
ELSE 'erro'
END;
Mas, para simplificar e deixar mais limpo o código, usaria a forma a
seguir:
SELECT
('{domingo,segunda,terça,quarta,quinta,sexta,sábado}'::text[])[extract(dow from
now()) + 1];
[1]
http://www.postgresql.org/docs/current/static/functions-conditional.html
[2] http://www.postgresql.org/docs/8.2/interactive/functions-datetime.html
--
Atenciosamente,
Rodrigo Hjort
Icewall Tecnologias
http://www.icewall.com.br
2007/3/16, Adriano Espinoza de Oliveira <[EMAIL PROTECTED]>:
Uso a função abaixo, bem parecida com o que a Milena sugeriu:
CREATE OR REPLACE FUNCTION "public"."dia_da_semana" (integer) RETURNS
varchar AS
$body$
begin
return
case
when $1 = 0 then 'domingo'
when $1 = 1 then 'segunda'
when $1 = 2 then 'terça'
when $1 = 3 then 'quarta'
when $1 = 4 then 'quinta'
when $1 = 5 then 'sexta'
when $1 = 6 then 'sábado'
else 'ERRO'
end;
end;
$body$
LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
Em 16/03/07, [EMAIL PROTECTED] < [EMAIL PROTECTED]> escreveu:
Milena...
Vai aí uma dica...
SELECT CASE WHEN TO_CHAR(CURRENT_DATE, 'D') = 1 THEN 'DOMINGO'
WHEN TO_CHAR(CURRENT_DATE, 'D') = 2 THEN 'SEGUNDA'
WHEN TO_CHAR(CURRENT_DATE, 'D') = 3 THEN 'TERCA'
WHEN TO_CHAR(CURRENT_DATE, 'D') = 4 THEN 'QUARTA'
WHEN TO_CHAR(CURRENT_DATE, 'D') = 5 THEN 'QUINTA'
WHEN TO_CHAR(CURRENT_DATE, 'D') = 6 THEN 'SEXTA'
WHEN TO_CHAR(CURRENT_DATE, 'D') = 7 THEN 'SABADO'
END AS DIA_DA_SEMANA;
--
Sidnei Samuel Klein
--------------------------------------------------------------------------
_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/
Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios
----------------------------------------------------------------------------
_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/
Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios
------------------------------------------------------------------------------
_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/
Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/
Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios