combocid.sql
来自「postgresql8.3.4源码,开源数据库」· SQL 代码 · 共 94 行
SQL
94 行
---- 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;SAVEPOINT s1;UPDATE combocidtest SET foobar = foobar + 10;-- here we should see only updated tuplesSELECT ctid,cmin,* FROM combocidtest;ROLLBACK TO s1;-- now we should see old tuples, but with combo CIDs starting at 0SELECT ctid,cmin,* FROM combocidtest;COMMIT;-- combo data is not there anymore, but should still see tuplesSELECT ctid,cmin,* FROM combocidtest;-- 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;ROLLBACK;SELECT ctid,cmin,* FROM combocidtest;-- 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;SAVEPOINT s1;-- this doesn't affect cminSELECT ctid,cmin,* FROM combocidtest FOR UPDATE;SELECT ctid,cmin,* FROM combocidtest;-- but this doesUPDATE combocidtest SET foobar = foobar + 10;SELECT ctid,cmin,* FROM combocidtest;ROLLBACK TO s1;SELECT ctid,cmin,* FROM combocidtest;COMMIT;SELECT ctid,cmin,* FROM combocidtest;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?