提交 2e0778d6 编写于 作者: X Xin Zhang

Make reader_waits_for_lock test more readable

Author: Xin Zhang <xzhang@pivotal.io>
Author: Ashwin Agrawal <aagrawal@pivotal.io>
上级 7eae4fed
......@@ -3,28 +3,28 @@
-- held by some other session.
-- setup
5: create table reader_waits_for_lock_table(a int, b int) distributed by (a);
1: create table reader_waits_for_lock_table(a int, b int) distributed by (a);
CREATE
5: insert into reader_waits_for_lock_table select 1, 1;
1: insert into reader_waits_for_lock_table select 1, 1;
INSERT 1
-- save session id
5: CREATE TABLE reader_waits_for_lock_table_sessionid(a, setting) AS SELECT 1, setting::int FROM pg_settings WHERE name = 'gp_session_id' distributed by (a);
1: CREATE TABLE reader_waits_for_lock_table_sessionid(a, setting) AS SELECT 1, setting::int FROM pg_settings WHERE name = 'gp_session_id' distributed by (a);
CREATE 1
2U: BEGIN;
BEGIN
2U: LOCK reader_waits_for_lock_table IN ACCESS EXCLUSIVE MODE;
LOCK
-- creates reader and writer gang
5&: SELECT t1.* FROM reader_waits_for_lock_table t1 INNER JOIN reader_waits_for_lock_table t2 ON t1.b = t2.b; <waiting ...>
-- all processes in the session 5 should be blocked
2U: SELECT count(case when not waiting then 1 end), count(*) > 0 FROM pg_stat_activity where sess_id = (SELECT setting FROM reader_waits_for_lock_table_sessionid);
count|?column?
-----+--------
0 |t
1&: SELECT t1.* FROM reader_waits_for_lock_table t1 INNER JOIN reader_waits_for_lock_table t2 ON t1.b = t2.b; <waiting ...>
-- all processes in the session 1 should be blocked
2U: SELECT count(case when waiting then 1 end) = count(*) all_waiting FROM pg_stat_activity where sess_id = (SELECT setting FROM reader_waits_for_lock_table_sessionid);
all_waiting
-----------
t
(1 row)
2U: COMMIT;
COMMIT
5<: <... completed>
1<: <... completed>
a|b
-+-
1|1
......
......@@ -3,15 +3,15 @@
-- held by some other session.
-- setup
5: create table reader_waits_for_lock_table(a int, b int) distributed by (a);
5: insert into reader_waits_for_lock_table select 1, 1;
1: create table reader_waits_for_lock_table(a int, b int) distributed by (a);
1: insert into reader_waits_for_lock_table select 1, 1;
-- save session id
5: CREATE TABLE reader_waits_for_lock_table_sessionid(a, setting) AS SELECT 1, setting::int FROM pg_settings WHERE name = 'gp_session_id' distributed by (a);
1: CREATE TABLE reader_waits_for_lock_table_sessionid(a, setting) AS SELECT 1, setting::int FROM pg_settings WHERE name = 'gp_session_id' distributed by (a);
2U: BEGIN;
2U: LOCK reader_waits_for_lock_table IN ACCESS EXCLUSIVE MODE;
-- creates reader and writer gang
5&: SELECT t1.* FROM reader_waits_for_lock_table t1 INNER JOIN reader_waits_for_lock_table t2 ON t1.b = t2.b;
-- all processes in the session 5 should be blocked
2U: SELECT count(case when not waiting then 1 end), count(*) > 0 FROM pg_stat_activity where sess_id = (SELECT setting FROM reader_waits_for_lock_table_sessionid);
1&: SELECT t1.* FROM reader_waits_for_lock_table t1 INNER JOIN reader_waits_for_lock_table t2 ON t1.b = t2.b;
-- all processes in the session 1 should be blocked
2U: SELECT count(case when waiting then 1 end) = count(*) all_waiting FROM pg_stat_activity where sess_id = (SELECT setting FROM reader_waits_for_lock_table_sessionid);
2U: COMMIT;
5<:
1<:
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册