| 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
| 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 |