Re: 7.0.3 reproduceable serious select error

Поиск
Список
Период
Сортировка
От Rob van Nieuwkerk
Тема Re: 7.0.3 reproduceable serious select error
Дата
Msg-id 200101182156.WAA08207@verdi.et.tudelft.nl
обсуждение исходный текст
Ответ на Re: 7.0.3 reproduceable serious select error  (mlw <markw@mohawksoft.com>)
Список pgsql-hackers
Hi Mark,

I just checked: the "demo.dump" file does not contain any characters
above 0x7F; it's just plain ASCII.  So that can't be the reason.
       greetings,       Rob van Nieuwkerk


> Rob van Nieuwkerk wrote:

Ehm .., *you* wrote this ! :-)

> I tried to reproduce this bug on 7.0.2 and 7.0.3 with both 8K and 32K block
> sizes, and could not reproduce the error.
> 
> I am running RedHat 6.2 kernel 2.2.16.
> 
> I don't know enough to even be close, but I wonder if there are any subtle
> differences between the way characters are treated for indexes vs the way they
> are treated for table scans? If there are even slight differences in the way
> this happens, a misinterpretation of ascii conversions for instance, (I am
> assuming you may be using ascii characters above 0x7F), it could behave
> something like this, and explain why I wouldn't see it. .Like I said, however,
> I don't know  much so don't read too much into what I say.


> > Hello,
> >
> > I've selected postgresql 7.0.3 for our (critical) application and while
> > doing my first experiments I've found a bug which makes me worry very
> > much.
> >
> > The problem is that a SELECT with a certain LIKE condition in combination
> > with a GROUP BY does not find the proper records when there is an index on
> > the particular column present.  When the index is removed the SELECT *does*
> > return the right answer.
> >
> > Fortunately I managed to strip down our database and create a simple
> > single table with which the bug can be easily reproduced.
> >
> > I've been searching in the Postgres bug-database and this problem
> > might be related to this report:
> >
> >         http://www.postgresql.org/bugs/bugs.php?4~111
> >
> > Below you find a psql-session that demonstrates the bug.
> >
> > I've made a dump of the test-database available as:
> >
> >         http://dutepp0.et.tudelft.nl/~robn/demo.dump.bz2
> >
> > (it is 46100 bytes long in compressed form but 45 MB when uncompressed,
> >  I tried to trim it down but then the bug isn't reproducable anymore !)
> >
> > The table is filled with all Spaces execpt for the "town" column.
> >
> > Sysinfo:
> > --------
> >         - well-maintained Linux Red Hat 6.2
> >         - kernel 2.2.18
> >         - Intel Pentium III
> >         - postgresql-7.0.3-2 RPMs from the Postgresql site
> >           (the problem also occurs with locally rebuilt Source RPM)
> >
> > Any help is much appreciated !
> >
> >         Friendly greetings,
> >         Rob van Nieuwkerk
> >
> > psql session:
> > ***********************************************************************
> > demo=> \d
> >      List of relations
> >     Name    | Type  | Owner
> > ------------+-------+-------
> >  demo_table | table | robn
> > (1 row)
> >
> > demo=> \d demo_table
> >        Table "demo_table"
> >  Attribute |   Type   | Modifier
> > -----------+----------+----------
> >  postcode  | char(7)  |
> >  odd_even  | char(1)  |
> >  low       | char(5)  |
> >  high      | char(5)  |
> >  street    | char(24) |
> >  town      | char(24) |
> >  area      | char(1)  |
> >
> > demo=> \di
> > No relations found.
> > demo=> SELECT town FROM demo_table WHERE town  LIKE 'ZWO%' GROUP BY town;
> >            town
> > --------------------------
> >  ZWOLLE
> > (1 row)
> >
> > demo=> SELECT town FROM demo_table WHERE town  LIKE 'Z%' GROUP BY town;
> >
> >     <<<<<< here 86 towns are correctly found (output removed) >>>>>>
> >
> > demo=> CREATE INDEX demo_table_town_idx ON demo_table(town);
> > CREATE
> > demo=> SELECT town FROM demo_table WHERE town  LIKE 'Z%' GROUP BY town;
> >  town
> > ------
> > (0 rows)
> >         <<<<<< This is wrong !!!!!! >>>>>>>
> >
> > demo=> SELECT town FROM demo_table WHERE town  LIKE 'ZWO%' GROUP BY town;
> >            town
> > --------------------------
> >  ZWOLLE
> > (1 row)
> >
> > demo=> DROP INDEX demo_table_town_idx;
> > DROP
> > demo=> SELECT town FROM demo_table WHERE town  LIKE 'Z%' GROUP BY town;
> >
> >     <<<<<< here 86 towns are correctly found again >>>>>>
> > ***********************************************************************
> 




В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: 7.0.3 reproduceable serious select error
Следующее
От: ncm@zembu.com (Nathan Myers)
Дата:
Сообщение: Re: copy from stdin; bug?