BUG #5738: btree index search bug
От | spche |
---|---|
Тема | BUG #5738: btree index search bug |
Дата | |
Msg-id | 201011011018.oA1AI2JM075862@wwwmaster.postgresql.org обсуждение исходный текст |
Ответы |
Re: BUG #5738: btree index search bug
|
Список | pgsql-bugs |
The following bug has been logged online: Bug reference: 5738 Logged by: spche Email address: spche@163.com PostgreSQL version: 9.01 Operating system: Winxp Description: btree index search bug Details: create table a (a int); create index a_a on a(a); insert into a values(1); insert into a values(2); insert into a select * from a; insert into a select * from a; insert into a select * from a; insert into a select * from a; insert into a select * from a; insert into a select * from a; insert into a select * from a; insert into a select * from a; insert into a select * from a; insert into a select * from a; insert into a select * from a; insert into a select * from a; delete from a where a=3; CREATE or replace FUNCTION aa() RETURNS integer AS $$ DECLARE curs2 cursor for SELECT a FROM a where a=3; rowv1 integer DEFAULT 0; rowv2 integer DEFAULT 32; cou1 integer DEFAULT 0; BEGIN insert into a values(3); OPEN curs2; FETCH curs2 INTO rowv1; IF FOUND THEN cou1 := cou1 + 1 ; END IF; insert into a values(3); insert into a values(3); insert into a values(3); --update a set a=4 where a=3; FETCH curs2 INTO rowv2; IF FOUND THEN cou1 := cou1 + 1 ; END IF; FETCH curs2 INTO rowv2; IF FOUND THEN cou1 := cou1 + 1 ; END IF; FETCH curs2 INTO rowv2; IF FOUND THEN cou1 := cou1 + 1 ; END IF; close curs2; RETURN cou1; END; $$ LANGUAGE plpgsql; select aa(); the result is 1; the index scan is not updated; because static bool _bt_readpage(IndexScanDesc scan, ScanDirection dir, OffsetNumber offnum) copy a old version, and not update when new version come.
В списке pgsql-bugs по дате отправления: