Re: Conflict between regression tests namespace & transactions due to recent changes

Marina Polyakova <m.polyakova@postgrespro.ru>

From: Marina Polyakova <m.polyakova@postgrespro.ru>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: pgsql-hackers@postgresql.org, Noah Misch <noah@leadboat.com>, exclusion@gmail.com
Date: 2023-05-15T20:23:18Z
Lists: pgsql-hackers

Attachments

On 2023-05-15 19:16, Tom Lane wrote:
> Marina Polyakova <m.polyakova@postgrespro.ru> writes:
>> IIUC the conflict was caused by
> 
>> +SET search_path to public, test_ns_schema_1;
>> +CREATE SCHEMA test_ns_schema_2
>> +       CREATE VIEW abc_view AS SELECT a FROM abc;
> 
>> because the parallel regression test transactions had already created
>> the table abc and was trying to drop it.
> 
> Hmm.  I'd actually fix the blame on transactions.sql here.  Creating
> a table named as generically as "abc" is horribly bad practice in
> a set of concurrent tests.  namespace.sql is arguably okay, since
> it's creating that table name in a private schema.
> 
> I'd be inclined to fix this by doing s/abc/something-else/g in
> transactions.sql.
> 
> 			regards, tom lane

Maybe use a separate schema for all new objects in the transaction 
test?.. See diff_set_tx_schema.patch.

-- 
Marina Polyakova
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company

Commits

  1. Avoid naming conflict between transactions.sql and namespace.sql.

  2. Replace last PushOverrideSearchPath() call with set_config_option().