From f9472d72561d285e8c138f3e1276f3110f55e515 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter_e@gmx.net>
Date: Mon, 22 Aug 2016 12:00:00 -0400
Subject: [PATCH] Run select_parallel test by itself

Remove the plpgsql wrapping that hides the context.  So now the test
will fail if the work doesn't actually happen in a parallel worker.  Run
the test in its own test group to ensure it won't run out of resources
for that.
---
 src/test/regress/expected/select_parallel.out | 14 ++++----------
 src/test/regress/parallel_schedule            |  5 ++++-
 src/test/regress/sql/select_parallel.sql      | 10 ++--------
 3 files changed, 10 insertions(+), 19 deletions(-)

diff --git a/src/test/regress/expected/select_parallel.out b/src/test/regress/expected/select_parallel.out
index 2286fafab39..18e21b7f132 100644
--- a/src/test/regress/expected/select_parallel.out
+++ b/src/test/regress/expected/select_parallel.out
@@ -111,14 +111,8 @@ explain (costs off)
          Index Cond: (unique1 = 1)
 (5 rows)
 
-do $$begin
-  -- Provoke error, possibly in worker.  If this error happens to occur in
-  -- the worker, there will be a CONTEXT line which must be hidden.
-  perform stringu1::int2 from tenk1 where unique1 = 1;
-  exception
-	when others then
-		raise 'SQLERRM: %', sqlerrm;
-end$$;
-ERROR:  SQLERRM: invalid input syntax for integer: "BAAAAA"
-CONTEXT:  PL/pgSQL function inline_code_block line 7 at RAISE
+-- provoke error in worker
+select stringu1::int2 from tenk1 where unique1 = 1;
+ERROR:  invalid input syntax for integer: "BAAAAA"
+CONTEXT:  parallel worker
 rollback;
diff --git a/src/test/regress/parallel_schedule b/src/test/regress/parallel_schedule
index 3815182fe7a..1cb5dfc336d 100644
--- a/src/test/regress/parallel_schedule
+++ b/src/test/regress/parallel_schedule
@@ -92,7 +92,10 @@ test: brin gin gist spgist privileges init_privs security_label collate matview
 test: alter_generic alter_operator misc psql async dbsize misc_functions
 
 # rules cannot run concurrently with any test that creates a view
-test: rules psql_crosstab select_parallel amutils
+test: rules psql_crosstab amutils
+
+# run by itself so it can run parallel workers
+test: select_parallel
 
 # ----------
 # Another group of parallel tests
diff --git a/src/test/regress/sql/select_parallel.sql b/src/test/regress/sql/select_parallel.sql
index 38d3166742c..8b4090f2ec1 100644
--- a/src/test/regress/sql/select_parallel.sql
+++ b/src/test/regress/sql/select_parallel.sql
@@ -44,13 +44,7 @@ set force_parallel_mode=1;
 explain (costs off)
   select stringu1::int2 from tenk1 where unique1 = 1;
 
-do $$begin
-  -- Provoke error, possibly in worker.  If this error happens to occur in
-  -- the worker, there will be a CONTEXT line which must be hidden.
-  perform stringu1::int2 from tenk1 where unique1 = 1;
-  exception
-	when others then
-		raise 'SQLERRM: %', sqlerrm;
-end$$;
+-- provoke error in worker
+select stringu1::int2 from tenk1 where unique1 = 1;
 
 rollback;
-- 
GitLab