BUG #6079: Wrong select result

Поиск
Список
Период
Сортировка
От Renat
Тема BUG #6079: Wrong select result
Дата
Msg-id 201106281441.p5SEfU5x051446@wwwmaster.postgresql.org
обсуждение исходный текст
Ответы Re: BUG #6079: Wrong select result  (Pavel Stehule <pavel.stehule@gmail.com>)
Список pgsql-bugs
The following bug has been logged online:

Bug reference:      6079
Logged by:          Renat
Email address:      renat.nasyrov@itv.ru
PostgreSQL version: 9.0.4
Operating system:   Windows
Description:        Wrong select result
Details:

INPUT:

create table foo (
id bigint not null,
date_to timestamp without time zone,
CONSTRAINT foo_pkey PRIMARY KEY (id)
);

CREATE INDEX foo_date_to_index
  ON foo
  USING btree
  (date_to)

insert into foo (id, date_to) values (1, now());
insert into foo (id, date_to) values (2, NULL);

select * from foo where date_to is null and date_to > '2011-01-01'

Expected: 0 rows

But: it return 1 row with id=2

If we will replace foo_date_to_index to:

CREATE INDEX foo_date_to_index
  ON foo
  USING btree
  (date_to)
  WHERE date_to is NOT NULL

Then:

SELECT * FROM foo where date_to is null and date_to > '2011-01-01'

Return: 0 rows

Please explain for me what happens?

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

Предыдущее
От: Peter Eisentraut
Дата:
Сообщение: Re: BUG #6066: [PATCH] Mark more strings as c-format
Следующее
От: Pavel Stehule
Дата:
Сообщение: Re: BUG #6079: Wrong select result