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.. > > 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.
> regression=# create table foo (id int, nome varchar(10)); > CREATE TABLE > regression=# create index nome_idx on foo(upper(nome)); > CREATE INDEX > regression=# set enable_seqscan to off; > SET > regression=# explain select * from foo where upper(nome) = 'EULER'; > QUERY PLAN > ----------------------------------------------------------------------- > Bitmap Heap Scan on foo (cost=4.31..14.49 rows=8 width=18) > Recheck Cond: (upper((nome)::text) = 'EULER'::text) > -> Bitmap Index Scan on nome_idx (cost=0.00..4.31 rows=8 width=0) > Index Cond: (upper((nome)::text) = 'EULER'::text) > (4 registros) > > regression=# > -- Euler Taveira de Oliveira http://www.timbira.com/ _______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral