index on numbers not honoured - Mailing list pgsql-general

From Ilker Egilmez
Subject index on numbers not honoured
Date
Msg-id 9sp9tj$il4$1@news.tht.net
Whole thread Raw
Responses Re: index on numbers not honoured  (Stephan Szabo <sszabo@megazone23.bigpanda.com>)
Re: index on numbers not honoured  (Risko Peter <rpetike@freemail.hu>)
List pgsql-general
hi,

an index on a table column of any number type only gets honoured if you
query it like a string, e.g.

create table t1 ( n int2 ) ;

create index t1n on t1 (n) ;

explain select * from t1 where n = 1 ;

-- Seq Scan on t1  (cost=0.00..22.50 rows=10 width=2)

explain select * from t1 where n = '1'  ;

-- Index Scan using t1n on t1  (cost=0.00..8.14 rows=10 width=2)

first i thought this might be an psql client error and tried the same via
jdbc, and look, there it happens again. if i create a PreparedStatemnt and
bind the INT or LONG value with setLong (1,x) the index won't be used in the
select statement. if i bind the value with a setString (1,x+"") command,
then the index is honored correctly. I tested the code against postgres
7.1.3 as well as 7.0.2. this means that i would have to change all my java
code from setLong to setString in order to speed up my apps every time i
query a number. quite ugly!

ilker -)


--
--
gate5 AG
schoenhauser allee 62
10437 berlin

fon + 49 30 446 76 0
fax + 49 30 446 76 555

http://www.gate5.de/ | ilker@gate5.de



pgsql-general by date:

Previous
From: J Smith
Date:
Subject: Re: Sourceforge on Oracle?
Next
From: Paulo Jan
Date:
Subject: Modifying check constraints