Re: [PATCH] Add permit_unlogged_tables GUC to control unlogged table creation.

From: Greg Sabino Mullane <htamfids(at)gmail(dot)com>
To: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
Cc: harinath kanchu <kanchuharinath(at)gmail(dot)com>, pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: [PATCH] Add permit_unlogged_tables GUC to control unlogged table creation.
Date: 2026-01-13 23:26:46
Message-ID: CAKAnmmK4DXes01TX9q+9rTOvLsOFCNXSdOKcB=__nBM=Gv_Wjw@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Tue, Jan 13, 2026 at 4:14 PM David G. Johnston <
david(dot)g(dot)johnston(at)gmail(dot)com> wrote:

> I dislike the premise of this option. It doesn't seem like something that
> should be evaluated on a cluster/database scope.
>

Indeed. OP, we already have a mechanism to support this: event triggers.
Quick example:

create or replace function unlogged_be_gone() returns event_trigger
language plpgsql as $$
declare myrec record;
begin
for myrec in select * from pg_event_trigger_ddl_commands() loop
if myrec.command_tag = 'CREATE TABLE' OR myrec.command_tag = 'ALTER
TABLE' then
perform 1 from pg_class where oid = myrec.objid and relpersistence =
'u';
if found then
raise 'Tables may not be created or changed to unlogged!';
end if;
end if;
end loop;
end
$$;

create event trigger etest on ddl_command_end execute function
unlogged_be_gone();

Cheers,
Greg

--
Crunchy Data - https://www.crunchydata.com
Enterprise Postgres Software Products & Tech Support

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Nico Williams 2026-01-13 23:27:39 Re: [oauth] SASL mechanisms
Previous Message Jacob Champion 2026-01-13 23:13:11 Re: [oauth] SASL mechanisms