Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Warns when dropping non partitioned temp tables #271

Open
DavidPavlicek opened this issue Jun 29, 2023 · 0 comments
Open

Warns when dropping non partitioned temp tables #271

DavidPavlicek opened this issue Jun 29, 2023 · 0 comments

Comments

@DavidPavlicek
Copy link

Hi,
we used pg_pathman for a long time, but last week, our log got totally bloated with warns from pg_pathman. Something like this

WARNING: only the owner or superuser can change partitioning configuration of table "poi_data"
Context: SQL statement "DELETE FROM public.pathman_config WHERE partrel = ANY(relids)" PL/pgSQL function pathman_ddl_trigger_func() line 17 at SQL statement SQL statement "drop table if exists m_pomtabtr" PL/pgSQL function delikt_gis.precti_delikty_predpcr(integer,integer,integer,integer,integer,timestamp without time zone,timestamp without time zone,character varying) line 54 at SQL statement

The dropped table is a temp table and is definitely not partitioned in pg_pathman.

I'm not aware of any changes in our setup and nothing suspicious got logged around the time when warns started appearing in logs (around 01:10 AM), no DNF update, nothing.

More interestingly warns appear when dropping different temp tables under different users. I'm stuck. Maybe something in conjunction with PgBouncer and/or Timescale. Timescale has its event triggers for DDL, but they should be executed after pg_pathman triggers. Maybe PgBouncer messed up something within sessions...

I temporarily fix this by testing relids against pathman_config before delete is executed inside pathman_ddl_trigger_func()...

if exists(select 1 from public.pathman_config where partrel = any(relids)) then
    /* Cleanup pathman_config */
    DELETE FROM public.pathman_config WHERE partrel = ANY(relids);

    /* Cleanup params table too */
    DELETE FROM public.pathman_config_params WHERE partrel = ANY(relids);
end if;

After this mod, warns disappears. Any thoughts on this?

Environment

Extensions

extname extversion
plpgsql 1.0
postgis 3.1.3
postgis_raster 3.1.3
pg_pathman 1.5
unaccent 1.1
btree_gist 1.5
hstore 1.7
intarray 1.3
pg_buffercache 1.3
pg_prewarm 1.2
pg_stat_statements 1.8
pg_trgm 1.5
pgstattuple 1.5
tablefunc 1.0
timescaledb 2.5.1

Version
PostgreSQL 13.5 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-4), 64-bit

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant