test: isolate pg_terminate_backend to appname

The pg_terminate_backend done in the io test:

`test_fail_with_automatic_recovery_disabled_and_terminated_using_query`

Can affect other connections.
This commit is contained in:
steve-chavez
2024-05-19 19:58:27 -05:00
committed by Steve Chavez
parent d5a4c5609e
commit bfa4e1bedb
3 changed files with 12 additions and 4 deletions
@@ -137,7 +137,12 @@
pdFuncSettings: []
pdHasVariadic: false
pdName: terminate_pgrst
pdParams: []
pdParams:
- ppName: appname
ppReq: true
ppType: text
ppTypeMaxLength: text
ppVar: false
pdReturnType:
contents:
contents:
+2 -2
View File
@@ -187,8 +187,8 @@ where application_name ilike 'postgrest%'
limit 1;
$$;
create function terminate_pgrst() returns setof record as $$
select pg_terminate_backend(pid) from pg_stat_activity where application_name iLIKE '%postgrest%';
create function terminate_pgrst(appname text) returns setof record as $$
select pg_terminate_backend(pid) from pg_stat_activity where application_name iLIKE '%' || appname || '%';
$$ language sql security definer;
create or replace function one_sec_timeout() returns void as $$
+4 -1
View File
@@ -1214,11 +1214,14 @@ def test_fail_with_automatic_recovery_disabled_and_terminated_using_query(defaul
env = {
**defaultenv,
"PGRST_DB_POOL_AUTOMATIC_RECOVERY": "false",
"PGAPPNAME": "target",
}
app_name = "'{}'".format(env["PGAPPNAME"])
with run(env=env) as postgrest:
os.system(
f'psql -d {defaultenv["PGDATABASE"]} -U {defaultenv["PGUSER"]} -h {defaultenv["PGHOST"]} --set ON_ERROR_STOP=1 -a -c "SELECT terminate_pgrst()"'
f'psql -d {env["PGDATABASE"]} -U {env["PGUSER"]} -h {env["PGHOST"]} --set ON_ERROR_STOP=1 -a -c "SELECT terminate_pgrst({app_name})"'
)
exitCode = wait_until_exit(postgrest)