Trigger unhappy (Correction)

From: Bendik Rognlien Johansen <bendik(dot)johansen(at)gmail(dot)com>
To: pgsql-novice(at)postgresql(dot)org
Cc: bendik(dot)johansen(at)gmail(dot)com
Subject: Trigger unhappy (Correction)
Date: 2005-05-24 08:54:11
Message-ID: F5B83AE3-1247-416B-ADA0-D256A2A3EFFE@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-novice

Forgot to remove "OR" here IF NEW.indexed != true

Hello,
I have the following trigger on the table "records":

CREATE OR REPLACE FUNCTION records_update_trigger() RETURNS TRIGGER AS '
BEGIN
NEW.updated = now();
IF OLD.address1 != NEW.address1 OR OLD.postalcode1 !=
NEW.postalcode1
THEN
RAISE NOTICE ''Address was altered, position set to null'';
NEW.position := NULL;
END IF;

IF NEW.indexed != true
THEN
NEW.indexed := false;
RAISE NOTICE ''Index not set, unsetting indexed'';
END IF;
RETURN NEW;
END;
' language plpgsql;

DROP TRIGGER update_trigger ON records;
CREATE TRIGGER update_trigger BEFORE UPDATE ON records FOR EACH ROW
EXECUTE PROCEDURE records_update_trigger();

The "indexed" column on the table is default false.
Every time i do an update, the variable NEW.indexed is true, even
when it is not set in the sql. The result is that indexed is never
set to false in the second if-clause of the function.

What is causing this?

Thanks

Responses

Browse pgsql-novice by date

  From Date Subject
Next Message Andreas Kretschmer 2005-05-24 09:03:56 Re: [despammed] Trigger unhappy
Previous Message Bendik Rognlien Johansen 2005-05-24 08:48:14 Trigger unhappy