The following bug has been logged online: Bug reference: 6079 Logged by: Renat Email address: renat.nasy...@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? -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs