Re: Possible TODO: allow arbitrary expressions in event trigger WHEN

From: Jim Nasby <Jim(dot)Nasby(at)BlueTreble(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Pg Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Possible TODO: allow arbitrary expressions in event trigger WHEN
Date: 2017-02-14 18:07:39
Message-ID: e7b1c75e-0f72-9ec8-cba9-fa053f1a613f@BlueTreble.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 2/13/17 9:34 PM, Tom Lane wrote:
> Jim Nasby <Jim(dot)Nasby(at)BlueTreble(dot)com> writes:
>> Is there a reason not to allow $SUBJECT? Specifically, it'd be nice to
>> be able to do something like WHEN tag LIKE 'ALTER%'.
>
> Seems like it would be a seriously bad idea for such an expression to be
> able to invoke arbitrary SQL code. What if it calls a user-defined
> function that tries to do DDL?

Hmm... could we temporarily mark the transaction as being read-only?
Though, can't users already run arbitrary code inside the triggers
themselves?

If we don't want arbitrary DDL there might be other stuff we'd
presumably want to prevent. FDW access comes to mind. So maybe just
restrict what nodes can appear in the expression. You'd want to allow
operators in that list which still leaves a bit of a hole, but if you're
going to take up chainsaw juggling you better know what you're doing...
--
Jim Nasby, Data Architect, Blue Treble Consulting, Austin TX
Experts in Analytics, Data Architecture and PostgreSQL
Data in Trouble? Get it in Treble! http://BlueTreble.com
855-TREBLE2 (855-873-2532)

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Jim Nasby 2017-02-14 18:13:51 Add checklist item for psql completion to commitfest review
Previous Message David E. Wheeler 2017-02-14 17:48:52 Re: removing tsearch2