mail=> \d messagedata
Table "public.messagedata"
Column | Type | Modifiers
----------------+-----------------------------+-------------------------------------------------
id | bigint | default nextval('messagedata_id_seq'::regclass)
mailinglist_id | bigint |
messageid | character varying |
subject | character varying |
sender | character varying |
date | timestamp without time zone |
subject_indexx | tsvector |
Indexes:
"messagedata_idx_date" btree (date)
"messagedata_idx_date_mailinglist" btree (date, mailinglist_id)
"messagedata_idx_id" btree (id)
"messagedata_idx_mailinglist" btree (mailinglist_id)
"messagedata_idx_messageid" btree (messageid)
"messagedata_subject_idxx" gin (subject_indexx)
Triggers:
messagedata_insert_trigger AFTER INSERT ON messagedata FOR EACH STATEMENT EXECUTE PROCEDURE messagedata_trigger()
mail=> Create or replace FUNCTION messagedata_trigger() RETURNS trigger
AS $$
begin
new.subject_indexx := setweight(to_tsvector('pg.catalog.english', coalesce(new.subject,'')), 'A');
return new;
end
$$
LANGUAGE plpgsql;
mail=> insert into messagedata (subject) values('Foo');
ERROR: record "new" is not assigned yet
DETAIL: The tuple structure of a not-yet-assigned record is indeterminate.
CONTEXT: PL/pgSQL function "messagedata_trigger" line 2 at assignment