This is a discussion on BUG #2447: backend crashes when plpgsql functions are used in rules within the pgsql Bugs forums, part of the PostgreSQL category; --> The following bug has been logged online: Bug reference: 2447 Logged by: michael crozier Email address: crozierm@conducivetech.com PostgreSQL version: ...
| |||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| The following bug has been logged online: Bug reference: 2447 Logged by: michael crozier Email address: crozierm@conducivetech.com PostgreSQL version: 8.0.7 & 8.0.3 Operating system: solaris 10 and linux Description: backend crashes when plpgsql functions are used in rules Details: Using a function invocation in the WHERE expression of a RULE causes the backend to crash. I could not reproduce the problem on 8.1-beta4/Linux, but could reproduce it on 8.0.5/Solaris, 8.0.7/Solaris, and 8.0.3/Linux. Here is an example that can cause the crash: CREATE TABLE parent ( id integer primary key); CREATE OR REPLACE FUNCTION rule_condition(parent_row parent ) RETURNS INTEGER AS $$ BEGIN RETURN 0; END; $$ LANGUAGE 'plpgsql'; CREATE OR REPLACE RULE parent_rule AS ON INSERT TO parent WHERE 0=rule_condition(NEW) DO INSTEAD (); ---------------------------(end of broadcast)--------------------------- TIP 2: Don't 'kill -9' the postmaster |
| ||||
| "michael crozier" <crozierm@conducivetech.com> writes: > Using a function invocation in the WHERE expression of a RULE causes the > backend to crash. It's not the function, it's the whole-row Var (ie, unqualified "NEW") that doesn't work. Whole-row Vars in rules never worked at all before 8.0, and evidently they don't work in all contexts in 8.0 either :-(. It's unlikely we'll try to make this actually work in 8.0, but I'll look into erroring out cleanly instead of crashing. Unfortunately it's too late for 8.0.8 :-( regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 3: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faq |
| Thread Tools | |
| Display Modes | |
|
|