Received: from localhost (unknown [200.46.204.183]) by postgresql.org (Postfix) with ESMTP id 35F832E005B for ; Fri, 22 Feb 2008 00:12:00 -0400 (AST) Received: from postgresql.org ([200.46.204.71]) by localhost (mx1.hub.org [200.46.204.183]) (amavisd-maia, port 10024) with ESMTP id 37296-04 for ; Fri, 22 Feb 2008 00:11:57 -0400 (AST) Received: from weatherbeeta.com.au (unknown [218.214.212.154]) by postgresql.org (Postfix) with ESMTP id 6B4CD2E0037 for ; Fri, 22 Feb 2008 00:11:49 -0400 (AST) Received: (qmail 10462 invoked from network); 22 Feb 2008 04:09:13 -0000 X-NetworkBox-HamSign: 0101;OUT;wbeetaau1;a7990b033f01f273e1a3821843862b6d; Received: from mail.weatherbeeta.com.au (10.20.0.2) by network-box.weatherbeeta.com.au with SMTP; 22 Feb 2008 04:09:13 -0000 Received: (qmail 779 invoked by uid 1166); 22 Feb 2008 15:09:12 +1100 Received: from 172.20.0.155 by mail.weatherbeeta.com.au (envelope-from , uid 1165) with qmail-scanner-1.25-st-qms (clamdscan: 0.88.6/2315. perlscan: 1.25-st-qms. Clear:RC:1(172.20.0.155):. Processed in 0.172515 secs); 22 Feb 2008 04:09:12 -0000 X-Antivirus-mail.weatherbeeta.com.au-Mail-From: phillip.smith@weatherbeeta.com.au via mail.weatherbeeta.com.au X-Antivirus-mail.weatherbeeta.com.au: 1.25-st-qms (Clear:RC:1(172.20.0.155):. Processed in 0.172515 secs Process 761) Received: from it-phil.weatherbeeta.com.au (HELO wbaus090) (172.20.0.155) by mail.weatherbeeta.com.au with SMTP; 22 Feb 2008 15:09:11 +1100 From: "Phillip Smith" To: Subject: Re: Proposed archival read only trigger on rows - prevent history modification Date: Fri, 22 Feb 2008 15:09:11 +1100 Organization: Weatherbeeta Pty Ptd Message-ID: <014801c87508$ada837d0$9b0014ac@wbaus090> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook, Build 10.0.6626 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2962 Importance: Normal In-Reply-To: <200802212231.58019.xzilla@users.sourceforge.net> X-Scanned-By-wbeetaau1: Virus scan performed by network-box X-Scanned-By-wbeetaau1: Scanner file id is wbeetaau1-1203653353.851-10455-000 X-Scanned-By-wbeetaau1: No known viruses found in message (received+scanned in 0.01/0.03 secs) X-Scanned-By-wbeetaau1: Spam-Check-Result: No, hits=0 required=7 tests= autolearn=no version=2.0 X-Virus-Scanned: Maia Mailguard 1.0.1 X-Spam-Status: No, hits=0.08 tagged_above=0 required=5 tests=AWL=-0.020, RDNS_NONE=0.1 X-Spam-Level: X-Archive-Number: 200802/157 X-Sequence-Number: 30248 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.