Thread

  1. [PATCH v20220922 11/13] FIXUP regress-tests-for-session-variables

    Julien Rouhaud <julien.rouhaud@free.fr> — 2022-09-15T17:28:08Z

    ---
     .../isolation/expected/session-variable.out   | 30 +++++++++++++++++--
     .../isolation/specs/session-variable.spec     | 23 ++++++++++++--
     .../regress/expected/session_variables.out    | 22 ++++++++++++++
     src/test/regress/sql/session_variables.sql    | 16 ++++++++++
     4 files changed, 87 insertions(+), 4 deletions(-)
    
    diff --git a/src/test/isolation/expected/session-variable.out b/src/test/isolation/expected/session-variable.out
    index b0059910a1..88d3b6c31d 100644
    --- a/src/test/isolation/expected/session-variable.out
    +++ b/src/test/isolation/expected/session-variable.out
    @@ -41,7 +41,7 @@ public|myvar|f
     (1 row)
     
     step drop: DROP VARIABLE myvar;
    -step create: CREATE VARIABLE myvar AS text
    +step create: CREATE VARIABLE myvar AS text;
     step dbg: SELECT schema, name, removed FROM pg_debug_show_used_session_variables();
     schema|name|removed
     ------+----+-------
    @@ -70,7 +70,7 @@ public|myvar|f
     (1 row)
     
     step drop: DROP VARIABLE myvar;
    -step create: CREATE VARIABLE myvar AS text
    +step create: CREATE VARIABLE myvar AS text;
     step dbg: SELECT schema, name, removed FROM pg_debug_show_used_session_variables();
     schema|name |removed
     ------+-----+-------
    @@ -84,3 +84,29 @@ myvar
     (1 row)
     
     step sr1: ROLLBACK;
    +
    +starting permutation: create3 let3 s3 o_c_d o_eox_r create4 let4 drop4 drop3 inval3 discard sc3 clean state
    +step create3: CREATE VARIABLE myvar3 AS text;
    +step let3: LET myvar3 = 'test';
    +step s3: BEGIN;
    +step o_c_d: CREATE TEMP VARIABLE myvar_o_c_d AS text ON COMMIT DROP;
    +step o_eox_r: CREATE VARIABLE myvar_o_eox_r AS text ON TRANSACTION END RESET; LET myvar_o_eox_r = 'test';
    +step create4: CREATE VARIABLE myvar4 AS text;
    +step let4: LET myvar4 = 'test';
    +step drop4: DROP VARIABLE myvar4;
    +step drop3: DROP VARIABLE myvar3;
    +step inval3: SELECT COUNT(*) >= 0 FROM pg_foreign_table;
    +?column?
    +--------
    +t       
    +(1 row)
    +
    +step discard: DISCARD VARIABLES;
    +step sc3: COMMIT;
    +step clean: DROP VARIABLE myvar_o_eox_r;
    +step state: SELECT varname FROM pg_variable;
    ++varname
    ++-----------
    +myvar
    +(1 row)
    +
    diff --git a/src/test/isolation/specs/session-variable.spec b/src/test/isolation/specs/session-variable.spec
    index fe47339110..5a1035a2b2 100644
    --- a/src/test/isolation/specs/session-variable.spec
    +++ b/src/test/isolation/specs/session-variable.spec
    @@ -17,10 +17,27 @@ step val	{ SELECT myvar; }
     step dbg	{ SELECT schema, name, removed FROM pg_debug_show_used_session_variables(); }
     step sr1	{ ROLLBACK; }
     
    -
     session s2
     step drop		{ DROP VARIABLE myvar; }
    -step create		{ CREATE VARIABLE myvar AS text }
    +step create		{ CREATE VARIABLE myvar AS text; }
    +
    +session s3
    +step s3			{ BEGIN; }
    +step let3		{ LET myvar3 = 'test'; }
    +step o_c_d		{ CREATE TEMP VARIABLE myvar_o_c_d AS text ON COMMIT DROP; }
    +step o_eox_r	{ CREATE VARIABLE myvar_o_eox_r AS text ON TRANSACTION END RESET; LET myvar_o_eox_r = 'test'; }
    +step create4	{ CREATE VARIABLE myvar4 AS text; }
    +step let4		{ LET myvar4 = 'test'; }
    +step drop4		{ DROP VARIABLE myvar4; }
    +step inval3		{ SELECT COUNT(*) >= 0 FROM pg_foreign_table; }
    +step discard	{ DISCARD VARIABLES; }
    +step sc3		{ COMMIT; }
    +step clean		{ DROP VARIABLE myvar_o_eox_r; }
    +step state		{ SELECT varname FROM pg_variable; }
    +
    +session s4
    +step create3	{ CREATE VARIABLE myvar3 AS text; }
    +step drop3		{ DROP VARIABLE myvar3; }
     
     # Concurrent drop of a known variable should lead to an error
     permutation let val drop val
    @@ -32,3 +49,5 @@ permutation let val dbg drop create dbg val
     # We need a transaction to make sure that we won't accept invalidation when
     # calling the dbg step after the concurrent drop
     permutation let val s1 dbg drop create dbg val sr1
    +# test for DISCARD ALL when all internal queues have actions registered
    +permutation create3 let3 s3 o_c_d o_eox_r create4 let4 drop4 drop3 inval3 discard sc3 clean state
    diff --git a/src/test/regress/expected/session_variables.out b/src/test/regress/expected/session_variables.out
    index d411f0440d..a601829884 100644
    --- a/src/test/regress/expected/session_variables.out
    +++ b/src/test/regress/expected/session_variables.out
    @@ -480,6 +480,28 @@ SELECT count(*) FROM pg_variable;
          0
     (1 row)
     
    +BEGIN;
    +  CREATE TEMP VARIABLE g AS int ON COMMIT DROP;
    +  LET g = 1;
    +  DISCARD VARIABLES;
    +COMMIT;
    +SELECT count(*) FROM pg_variable;
    + count 
    +-------
    +     0
    +(1 row)
    +
    +BEGIN;
    +  CREATE TEMP VARIABLE g AS int ON COMMIT DROP;
    +  LET g = 1;
    +  DISCARD VARIABLES;
    +ROLLBACK;
    +SELECT count(*) FROM pg_variable;
    + count 
    +-------
    +     0
    +(1 row)
    +
     -- Encourage use of parallel plans
     SET parallel_setup_cost = 0;
     SET parallel_tuple_cost = 0;
    diff --git a/src/test/regress/sql/session_variables.sql b/src/test/regress/sql/session_variables.sql
    index d32bb5b042..6e023d1bbc 100644
    --- a/src/test/regress/sql/session_variables.sql
    +++ b/src/test/regress/sql/session_variables.sql
    @@ -329,6 +329,22 @@ ROLLBACK;
     
     SELECT count(*) FROM pg_variable;
     
    +BEGIN;
    +  CREATE TEMP VARIABLE g AS int ON COMMIT DROP;
    +  LET g = 1;
    +  DISCARD VARIABLES;
    +COMMIT;
    +
    +SELECT count(*) FROM pg_variable;
    +
    +BEGIN;
    +  CREATE TEMP VARIABLE g AS int ON COMMIT DROP;
    +  LET g = 1;
    +  DISCARD VARIABLES;
    +ROLLBACK;
    +
    +SELECT count(*) FROM pg_variable;
    +
     -- Encourage use of parallel plans
     SET parallel_setup_cost = 0;
     SET parallel_tuple_cost = 0;
    -- 
    2.37.0
    
    
    --z3ntqfnlkpftg4xg
    Content-Type: text/plain; charset=us-ascii
    Content-Disposition: attachment;
    	filename="v20220922-0012-this-patch-changes-error-message-column-do.patch"