Обсуждение: Use of indexes

Поиск
Список
Период
Сортировка

Use of indexes

От
Andre Schubert
Дата:
Hi all,

i have a litte problem using indexes with datatypes int and int8.

i have a table

test:id1 int,       id2 int8

if have to indexes:

index_test_1:
--------+---------id1    | integer
btree

index_test_2:
--------+--------id2    | bigint
btree

If i do any explains i got the following:

db_nmkm3=# explain select * from test where id1=1;
Index Scan using index_test_1 on test  (cost=0.00..3.01 rows=1 width=12)

db_nmkm3=# explain select * from test where id2=1;
Seq Scan on test  (cost=0.00..20.55 rows=1 width=12)

db_nmkm3=# explain select * from test where id2=1::int8;
Index Scan using index_test_2 on test  (cost=0.00..3.01 rows=1 width=12)

Can somebody explain me whats wrong with me or my indexes?

thanks in advance


Re: Use of indexes

От
"Christopher Kings-Lynne"
Дата:
> If i do any explains i got the following:
>
> db_nmkm3=# explain select * from test where id1=1;
> Index Scan using index_test_1 on test  (cost=0.00..3.01 rows=1 width=12)
>
> db_nmkm3=# explain select * from test where id2=1;
> Seq Scan on test  (cost=0.00..20.55 rows=1 width=12)
>
> db_nmkm3=# explain select * from test where id2=1::int8;
> Index Scan using index_test_2 on test  (cost=0.00..3.01 rows=1 width=12)
>
> Can somebody explain me whats wrong with me or my indexes?

Nothing's wrong with your indexes - it's a known limitation of Postgres's
type system.

You just have to use the "::int8" cast and it all works fine.

Chris