Thread: segfault with contrib lo

segfault with contrib lo

From
Marc Cousin
Date:
I was using the lo contrib a few days ago and wasn't paying attention, and
forgot the "for each row" in the create trigger command... PostgreSQL
segfaulted, when the trigger tried to access the row's attributes.

Please find attached a patch to control that the trigger is correctly defined
(as in the example): a before trigger, for each row, and a parameter (if the
parameter was omitted, it segfaulted too). I hope I did this correctly.

Regards,

Marc.
Attachment

Re: segfault with contrib lo

From
Robert Haas
Date:
On Mon, Oct 7, 2013 at 12:32 PM, Marc Cousin <cousinmarc@gmail.com> wrote:
> I was using the lo contrib a few days ago and wasn't paying attention, and
> forgot the "for each row" in the create trigger command... PostgreSQL
> segfaulted, when the trigger tried to access the row's attributes.
>
> Please find attached a patch to control that the trigger is correctly defined
> (as in the example): a before trigger, for each row, and a parameter (if the
> parameter was omitted, it segfaulted too). I hope I did this correctly.

Thanks for the patch.  Please add it to the next CommitFest.

https://commitfest.postgresql.org/action/commitfest_view/open

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



Re: segfault with contrib lo

From
Marc Cousin
Date:
On Tuesday 08 October 2013 12:28:46 Robert Haas wrote:
> On Mon, Oct 7, 2013 at 12:32 PM, Marc Cousin <cousinmarc@gmail.com> wrote:
> > I was using the lo contrib a few days ago and wasn't paying attention, and
> > forgot the "for each row" in the create trigger command... PostgreSQL
> > segfaulted, when the trigger tried to access the row's attributes.
> > 
> > Please find attached a patch to control that the trigger is correctly
> > defined (as in the example): a before trigger, for each row, and a
> > parameter (if the parameter was omitted, it segfaulted too). I hope I did
> > this correctly.
> Thanks for the patch.  Please add it to the next CommitFest.
> 
> https://commitfest.postgresql.org/action/commitfest_view/open
Done.



Re: segfault with contrib lo

From
Sawada Masahiko
Date:
On Wed, Oct 9, 2013 at 2:12 AM, Marc Cousin <cousinmarc@gmail.com> wrote:
> On Tuesday 08 October 2013 12:28:46 Robert Haas wrote:
>> On Mon, Oct 7, 2013 at 12:32 PM, Marc Cousin <cousinmarc@gmail.com> wrote:
>> > I was using the lo contrib a few days ago and wasn't paying attention, and
>> > forgot the "for each row" in the create trigger command... PostgreSQL
>> > segfaulted, when the trigger tried to access the row's attributes.
>> >
>> > Please find attached a patch to control that the trigger is correctly
>> > defined (as in the example): a before trigger, for each row, and a
>> > parameter (if the parameter was omitted, it segfaulted too). I hope I did
>> > this correctly.
>> Thanks for the patch.  Please add it to the next CommitFest.
>>
>> https://commitfest.postgresql.org/action/commitfest_view/open
> Done.
>

Sorry for late response.
I tried the patch you attached.

It is simple patch, and works fine.
It is just my suggestion that error message shows name of trigger.


Regards,

-------
Sawada Masahiko



Re: segfault with contrib lo

From
Tom Lane
Date:
Sawada Masahiko <sawada.mshk@gmail.com> writes:
> On Mon, Oct 7, 2013 at 12:32 PM, Marc Cousin <cousinmarc@gmail.com> wrote:
>>> I was using the lo contrib a few days ago and wasn't paying attention, and
>>> forgot the "for each row" in the create trigger command... PostgreSQL
>>> segfaulted, when the trigger tried to access the row's attributes.
>>> 
>>> Please find attached a patch to control that the trigger is correctly
>>> defined (as in the example): a before trigger, for each row, and a
>>> parameter (if the parameter was omitted, it segfaulted too). I hope I did
>>> this correctly.

This looks good to me, except I see no reason for the trigger to refuse to
run as an AFTER trigger.  It works fine like that (I checked), and in some
scenarios people might prefer to do it that way to be sure they're seeing
the final version of the update.

> Sorry for late response.
> I tried the patch you attached.
> It is simple patch, and works fine.
> It is just my suggestion that error message shows name of trigger.

That seemed like a good idea to me, so I made all the errors (not
just the new ones) do it.

Committed and back-patched.
        regards, tom lane