On 7/30/07, Euler Taveira de Oliveira <[EMAIL PROTECTED]> wrote:
> Pedro B. Alves wrote:
>
> > é que por exemplo, se você executar isso no oracle:
> > select * from foo where upper(nome) = 'EULER';
> > você estara quebrando o indice do campo nome..

Só lembrando....

Upper não é função de agregação, afinal não trabalha sobre dados *agregados*. :)


> >
> > isso que eu me refiro, se eu fizer a mesma coisa no postgresql, irá
> > quebrar o indice da coluna nome ou não?????
> >
> Não. Veja o exemplo abaixo que fiz. O índice deve ser construído com a
> função assim ao executar a consulta você utilizará o índice.
>

Como disse o Euler, crie o índice já com a expressão que deseja.

Esse comportamento de não usar o índice, embora seja meio chatinho, é
até necessário para ter índices mais eficientes.

Melhor que precisemos (e possamos ) especificar exatamente o que
queremos do que sistemas que ficam tentando "advinhar" o que queremos
e quando não se comportam como queremos, fiquemos de mãos amarradas.
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a