combocid.out

来自「postgresql8.3.4源码,开源数据库」· OUT 代码 · 共 143 行

OUT
143
字号
---- Tests for some likely failure cases with combo cmin/cmax mechanism--CREATE TEMP TABLE combocidtest (foobar int);BEGIN;-- a few dummy ops to push up the CommandId counterINSERT INTO combocidtest SELECT 1 LIMIT 0;INSERT INTO combocidtest SELECT 1 LIMIT 0;INSERT INTO combocidtest SELECT 1 LIMIT 0;INSERT INTO combocidtest SELECT 1 LIMIT 0;INSERT INTO combocidtest SELECT 1 LIMIT 0;INSERT INTO combocidtest SELECT 1 LIMIT 0;INSERT INTO combocidtest SELECT 1 LIMIT 0;INSERT INTO combocidtest SELECT 1 LIMIT 0;INSERT INTO combocidtest SELECT 1 LIMIT 0;INSERT INTO combocidtest SELECT 1 LIMIT 0;INSERT INTO combocidtest VALUES (1);INSERT INTO combocidtest VALUES (2);SELECT ctid,cmin,* FROM combocidtest; ctid  | cmin | foobar -------+------+-------- (0,1) |   10 |      1 (0,2) |   11 |      2(2 rows)SAVEPOINT s1;UPDATE combocidtest SET foobar = foobar + 10;-- here we should see only updated tuplesSELECT ctid,cmin,* FROM combocidtest; ctid  | cmin | foobar -------+------+-------- (0,3) |   12 |     11 (0,4) |   12 |     12(2 rows)ROLLBACK TO s1;-- now we should see old tuples, but with combo CIDs starting at 0SELECT ctid,cmin,* FROM combocidtest; ctid  | cmin | foobar -------+------+-------- (0,1) |    0 |      1 (0,2) |    1 |      2(2 rows)COMMIT;-- combo data is not there anymore, but should still see tuplesSELECT ctid,cmin,* FROM combocidtest; ctid  | cmin | foobar -------+------+-------- (0,1) |    0 |      1 (0,2) |    1 |      2(2 rows)-- Test combo cids with portalsBEGIN;INSERT INTO combocidtest VALUES (333);DECLARE c CURSOR FOR SELECT ctid,cmin,* FROM combocidtest;DELETE FROM combocidtest;FETCH ALL FROM c; ctid  | cmin | foobar -------+------+-------- (0,1) |    1 |      1 (0,2) |    1 |      2 (0,5) |    0 |    333(3 rows)ROLLBACK;SELECT ctid,cmin,* FROM combocidtest; ctid  | cmin | foobar -------+------+-------- (0,1) |    1 |      1 (0,2) |    1 |      2(2 rows)-- check behavior with locked tuplesBEGIN;-- a few dummy ops to push up the CommandId counterINSERT INTO combocidtest SELECT 1 LIMIT 0;INSERT INTO combocidtest SELECT 1 LIMIT 0;INSERT INTO combocidtest SELECT 1 LIMIT 0;INSERT INTO combocidtest SELECT 1 LIMIT 0;INSERT INTO combocidtest SELECT 1 LIMIT 0;INSERT INTO combocidtest SELECT 1 LIMIT 0;INSERT INTO combocidtest SELECT 1 LIMIT 0;INSERT INTO combocidtest SELECT 1 LIMIT 0;INSERT INTO combocidtest SELECT 1 LIMIT 0;INSERT INTO combocidtest SELECT 1 LIMIT 0;INSERT INTO combocidtest VALUES (444);SELECT ctid,cmin,* FROM combocidtest; ctid  | cmin | foobar -------+------+-------- (0,1) |    1 |      1 (0,2) |    1 |      2 (0,6) |   10 |    444(3 rows)SAVEPOINT s1;-- this doesn't affect cminSELECT ctid,cmin,* FROM combocidtest FOR UPDATE; ctid  | cmin | foobar -------+------+-------- (0,1) |    1 |      1 (0,2) |    1 |      2 (0,6) |   10 |    444(3 rows)SELECT ctid,cmin,* FROM combocidtest; ctid  | cmin | foobar -------+------+-------- (0,1) |    1 |      1 (0,2) |    1 |      2 (0,6) |   10 |    444(3 rows)-- but this doesUPDATE combocidtest SET foobar = foobar + 10;SELECT ctid,cmin,* FROM combocidtest; ctid  | cmin | foobar -------+------+-------- (0,7) |   12 |     11 (0,8) |   12 |     12 (0,9) |   12 |    454(3 rows)ROLLBACK TO s1;SELECT ctid,cmin,* FROM combocidtest; ctid  | cmin | foobar -------+------+-------- (0,1) |   12 |      1 (0,2) |   12 |      2 (0,6) |    0 |    444(3 rows)COMMIT;SELECT ctid,cmin,* FROM combocidtest; ctid  | cmin | foobar -------+------+-------- (0,1) |   12 |      1 (0,2) |   12 |      2 (0,6) |    0 |    444(3 rows)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?