Em 23-07-2013 16:53, Danilo Silva escreveu:
Quando você coloca a função na visão e ainda filtra por essa coluna na sua consulta, o planejador não consegue otimizar. Prefira manter a visão sem a função na coluna que você vai filtrar e faça: 1) a função na cláusula WHERE final; 2) talvez, um índice por função (functional index). A última linha da função estava como *LANGUAGE plpgsql VOLATILE", alterei de VOLATILE para IMMUTABLE para criar o index: CREATE INDEX historico_tb011_function_idx ON historico_tb011 (f_soma_diautil(datahist,horahist,CURRENT_DATE,LOCALTIME(0),codtb001,'','')); Mas ocorre o erro "ERROR: functions in index expression must be marked IMMUTABLE". Estou errando em algum lugar?
Sim. Você não pode criar um índice funcional com uma expressão variável (como LOCALTIME) pois isso depende... do momento atual :)
[]s __________________________________ Flavio Henrique A. Gurgel Líder de Projetos Especiais Consultoria, Projetos & Treinamentos 4LINUX Tel1: +55-11.2125-4747 ou 2125-4748 www.4linux.com.br email: fla...@4linux.com.br ______________________________ FREE SOFTWARE SOLUTIONS _______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral