OK for ABI break of PlannerInfo in 8.4?

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-hackers(at)postgreSQL(dot)org
Subject: OK for ABI break of PlannerInfo in 8.4?
Date: 2010-03-30 15:31:25
Message-ID: 21764.1269963085@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Marc Cousins pointed out here
http://archives.postgresql.org/pgsql-general/2010-03/msg01123.php
that the "constraint_exclusion = partition" feature added in 8.4
does not do what you'd expect for the target relation of an UPDATE
or DELETE. That's because expansion of an inheritance set is managed
differently for an UPDATE/DELETE target rel than for other cases.

I'm intending to apply the attached patch to fix this in HEAD.
I am tempted to back-patch it to 8.4 as well, but there is a potential
problem for external modules that may be touching PlannerInfo (eg,
planner hooks): the added field in that struct is an ABI break for them.
We can minimize the risk by adding the new field at the end rather than
in any more logical position; but it would still be a problem for
modules that palloc'd or copied a PlannerInfo struct. AFAICS though the
only real risk would be for relation_excluded_by_constraints to see a
garbage value of root->hasInheritedTarget and possibly make an
unexpected choice of what to do. I think that's probably a small enough
problem to be acceptable. Comments?

regards, tom lane

Attachment Content-Type Size
constraint-exclusion.patch text/x-patch 3.4 KB

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Heikki Linnakangas 2010-03-30 16:28:28 Re: Re: [COMMITTERS] pgsql: Make standby server continuously retry restoring the next WAL
Previous Message Michael Meskes 2010-03-30 15:22:07 Re: Problems with variable cursorname in ecpg