Re[3]: [GENERAL] Bug or my crooked hands? - Mailing list pgsql-general

From Yury Don
Subject Re[3]: [GENERAL] Bug or my crooked hands?
Date
Msg-id 12727.000120@vpcit.ru
Whole thread Raw
In response to Re[2]: [GENERAL] Bug or my crooked hands?  ("Richard Huxton" <dev@archonet.com>)
List pgsql-general
Hello Richard,

Once, Thursday, January 20, 2000, 3:04:43 PM, you wrote:

RH> ----- Original Message -----
RH> From: Yury Don <yura@vpcit.ru>
RH> To: pgsql-general <pgsql-general@postgreSQL.org>
RH> Sent: Wednesday, January 19, 2000 11:32 AM
RH> Subject: Re[2]: [GENERAL] Bug or my crooked hands?
>> >> I have the following situation:
>> >>
>> >> CREATE TABLE "Contacts" (
>> >>         "Contact"       Serial,
RH> [snipped fields]
>> >> );
>> >>
>> >> Then I have inserted data from text file and do a query
>> >>
>> >> mdb=> select Contact from Contacts;
>> >>    Contacts
>> >> -----------
>> >> -2112563299
RH> [snip]
>> >> ...
>>
>> JR> How did you get negative values in a Serial - field??
>> JR> Serial-fields default to positive numbers....
>>
>> I have copied the data from MS Access table and there where negative
>> values. I can't change data in field Contacts because they are using
>> in other tables.

RH> Speaking of which, what range have you got on that sequence (serial type =
RH> sequence AFAIK)?

RH> It couldn't be that postgres is looking at your WHERE and deciding that the
RH> value is out of range, so there can't be any records to return.

RH> What happens if you insert a new record and then try to look for that?

RH> --
RH>   Richard Huxton
RH>   Archonet Ltd.


RH> ************

I am already found that this is seems a bug in postgres with using of
indexes on int4.

I have created the table

CREATE TABLE "tt" (
        "cc" int4);
COPY "tt" FROM stdin;
-2112563299
-2111287024
-2110307960
.....

2146589610
2146589611
2146589612
\.

About 30 000 records totally

Then I am doing the following:

mdb=> select cc from tt where cc = -2112563299;
         cc
-----------
-2112563299
(1 row)

mdb=> create index i_tt_cc on tt (cc);
CREATE
mdb=> select cc from tt where cc = -2112563299;
cc
(0 rows)

mdb=> drop index i_tt_cc;
DROP
mdb=> select cc from tt where cc = -2112563299;
         cc
-----------
-2112563299
(1 row)

So, whith index postgresql works incorectly in this situation.
But when there are less records in the table (about 12 000),
everything works well.
I tested this on 3 different computers on Debian Linux 2.1 with
postgresql 6.5.2 and 6.5.3.


Best regards,
 Yury  ICQ 11831432
 mailto:yura@vpcit.ru



pgsql-general by date:

Previous
From: Peter Haworth
Date:
Subject: Creating simple type aliases
Next
From: Patrick Welche
Date:
Subject: vacuum analyze [table]