Re[3]: [GENERAL] Bug or my crooked hands?
От | Yury Don |
---|---|
Тема | Re[3]: [GENERAL] Bug or my crooked hands? |
Дата | |
Msg-id | 12727.000120@vpcit.ru обсуждение исходный текст |
Ответ на | Re[2]: [GENERAL] Bug or my crooked hands? ("Richard Huxton" <dev@archonet.com>) |
Список | 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 по дате отправления: