From 2e0778d675d9eebfda38697e5a4c66e816df3434 Mon Sep 17 00:00:00 2001 From: Xin Zhang Date: Wed, 10 Jan 2018 16:39:15 -0800 Subject: [PATCH] Make reader_waits_for_lock test more readable Author: Xin Zhang Author: Ashwin Agrawal --- .../expected/reader_waits_for_lock.out | 20 +++++++++---------- .../isolation2/sql/reader_waits_for_lock.sql | 14 ++++++------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/test/isolation2/expected/reader_waits_for_lock.out b/src/test/isolation2/expected/reader_waits_for_lock.out index d5b205480a..65e3eff92d 100644 --- a/src/test/isolation2/expected/reader_waits_for_lock.out +++ b/src/test/isolation2/expected/reader_waits_for_lock.out @@ -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; --- 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; +-- 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 diff --git a/src/test/isolation2/sql/reader_waits_for_lock.sql b/src/test/isolation2/sql/reader_waits_for_lock.sql index 1d90e7e53b..0d711e8c6f 100644 --- a/src/test/isolation2/sql/reader_waits_for_lock.sql +++ b/src/test/isolation2/sql/reader_waits_for_lock.sql @@ -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<: -- GitLab