Re: Proposed archival read only trigger on rows - prevent history modification - Mailing list pgsql-sql

From Phillip Smith
Subject Re: Proposed archival read only trigger on rows - prevent history modification
Date
Msg-id 014801c87508$ada837d0$9b0014ac@wbaus090
Whole thread Raw
In response to Re: Proposed archival read only trigger on rows - prevent history modification  (Robert Treat <xzilla@users.sourceforge.net>)
List pgsql-sql
On Tuesday 12 February 2008 03:25, Bryce Nesbitt wrote:
> Yes, the view approach has some advantages.  But it still leaves the 
> underlying tables naked to modification. And since the most likely 
> error is... well... me (or another admin) at the SQL prompt, we want 
> underlying tables protected also.

Couldn't you make a row trigger BEFORE UPDATE?

CREATE OR REPLACE FUNCTION readonly_handler() RETURNS "trigger" AS
$BODY$BEGIN    IF OLD.read_only = TRUE THEN        RETURN OLD;    ELSE        RETURN NEW;    END IF;END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;


THINK BEFORE YOU PRINT - Save paper if you don't really need to print this

*******************Confidentiality and Privilege Notice*******************

The material contained in this message is privileged and confidential to
the addressee.  If you are not the addressee indicated in this message or
responsible for delivery of the message to such person, you may not copy
or deliver this message to anyone, and you should destroy it and kindly
notify the sender by reply email.

Information in this message that does not relate to the official business
of Weatherbeeta must be treated as neither given nor endorsed by Weatherbeeta.
Weatherbeeta, its employees, contractors or associates shall not be liable
for direct, indirect or consequential loss arising from transmission of this
message or any attachments
e-mail.


pgsql-sql by date:

Previous
From: Robert Treat
Date:
Subject: Re: Proposed archival read only trigger on rows - prevent history modification
Next
From: "Jyoti Seth"
Date:
Subject: postgresql function not accepting null values in select statement