2 -- Tests for some likely failure cases with combo cmin/cmax mechanism
4 CREATE TEMP TABLE combocidtest (foobar int);
8 -- a few dummy ops to push up the CommandId counter
9 INSERT INTO combocidtest SELECT 1 LIMIT 0;
10 INSERT INTO combocidtest SELECT 1 LIMIT 0;
11 INSERT INTO combocidtest SELECT 1 LIMIT 0;
12 INSERT INTO combocidtest SELECT 1 LIMIT 0;
13 INSERT INTO combocidtest SELECT 1 LIMIT 0;
14 INSERT INTO combocidtest SELECT 1 LIMIT 0;
15 INSERT INTO combocidtest SELECT 1 LIMIT 0;
16 INSERT INTO combocidtest SELECT 1 LIMIT 0;
17 INSERT INTO combocidtest SELECT 1 LIMIT 0;
18 INSERT INTO combocidtest SELECT 1 LIMIT 0;
20 INSERT INTO combocidtest VALUES (1);
21 INSERT INTO combocidtest VALUES (2);
23 SELECT ctid,cmin,* FROM combocidtest;
27 UPDATE combocidtest SET foobar = foobar + 10;
29 -- here we should see only updated tuples
30 SELECT ctid,cmin,* FROM combocidtest;
34 -- now we should see old tuples, but with combo CIDs starting at 0
35 SELECT ctid,cmin,* FROM combocidtest;
39 -- combo data is not there anymore, but should still see tuples
40 SELECT ctid,cmin,* FROM combocidtest;
42 -- Test combo cids with portals
45 INSERT INTO combocidtest VALUES (333);
47 DECLARE c CURSOR FOR SELECT ctid,cmin,* FROM combocidtest;
49 DELETE FROM combocidtest;
55 SELECT ctid,cmin,* FROM combocidtest;
57 -- check behavior with locked tuples
60 -- a few dummy ops to push up the CommandId counter
61 INSERT INTO combocidtest SELECT 1 LIMIT 0;
62 INSERT INTO combocidtest SELECT 1 LIMIT 0;
63 INSERT INTO combocidtest SELECT 1 LIMIT 0;
64 INSERT INTO combocidtest SELECT 1 LIMIT 0;
65 INSERT INTO combocidtest SELECT 1 LIMIT 0;
66 INSERT INTO combocidtest SELECT 1 LIMIT 0;
67 INSERT INTO combocidtest SELECT 1 LIMIT 0;
68 INSERT INTO combocidtest SELECT 1 LIMIT 0;
69 INSERT INTO combocidtest SELECT 1 LIMIT 0;
70 INSERT INTO combocidtest SELECT 1 LIMIT 0;
72 INSERT INTO combocidtest VALUES (444);
74 SELECT ctid,cmin,* FROM combocidtest;
78 -- this doesn't affect cmin
79 SELECT ctid,cmin,* FROM combocidtest FOR UPDATE;
80 SELECT ctid,cmin,* FROM combocidtest;
83 UPDATE combocidtest SET foobar = foobar + 10;
85 SELECT ctid,cmin,* FROM combocidtest;
89 SELECT ctid,cmin,* FROM combocidtest;
93 SELECT ctid,cmin,* FROM combocidtest;