From: | Roman Neuhauser <neuhauser(at)chello(dot)cz> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | pl/pgsql trigger: syntax error at or near "ELSEIF" |
Date: | 2005-01-14 12:06:25 |
Message-ID: | 20050114120625.GA11065@isis.wad.cz |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Hello, what is the parser trying to tell me? (7.4.2 if it matters)
test=# CREATE OR REPLACE FUNCTION SYNC_COUPLECOUNT()
test-# RETURNS TRIGGER
test-# AS '
test'# BEGIN
test'# IF TG_OP = ''INSERT'' THEN
test'# UPDATE _calls
test'# SET
test'# realcouplecount = realcouplecount + 1
test'# WHERE
test'# id = NEW.callid;
test'# ELSEIF TG_OP = ''DELETE'' THEN
test'# UPDATE _calls
test'# SET
test'# realcouplecount = realcouplecount - 1
test'# WHERE
test'# id = NEW.callid;
test'# END IF;
test'# RETURN NEW;
test'# END;
test'# '
test-# LANGUAGE plpgsql;
CREATE FUNCTION
test=# CREATE TRIGGER triginsdel
test-# AFTER INSERT OR DELETE ON _couples
test-# FOR EACH ROW EXECUTE PROCEDURE SYNC_COUPLECOUNT();
CREATE TRIGGER
test=# insert into _couples (id, callid) values (get_next_coupleid(), 1);
ERROR: syntax error at or near "ELSEIF" at character 1
CONTEXT: PL/pgSQL function "sync_couplecount" line 8 at SQL statement
On a related note: if I replace NEW with OLD in the second UPDATE (in the
ELSEIF branch), I get:
test=# insert into _couples (id, callid) values (get_next_coupleid(), 1);
ERROR: record "old" is not assigned yet
DETAIL: The tuple structure of a not-yet-assigned record is indeterminate.
CONTEXT: PL/pgSQL function "sync_couplecount" line 8 at SQL statement
What's wrong with that?
--
FreeBSD 4.10-STABLE
12:48PM up 1 day, 6:53, 2 users, load averages: 0.05, 0.05, 0.00
From | Date | Subject | |
---|---|---|---|
Next Message | Jiří Němec | 2005-01-14 12:19:53 | Insufficient system resources for PostgreSQL 7.4.x? |
Previous Message | Laurent Marzullo | 2005-01-14 11:31:24 | PQexecParams and CURSOR |