Andres Freund escribió:
> On 2014-02-12 17:40:44 -0300, Alvaro Herrera wrote:
> > > > Also, AutoVacOpts (used as part of reloptions) gained three extra
> > > > fields. Since this is in the middle of StdRdOptions, it'd be somewhat
> > > > more involve to put these at the end of that struct. This might be a
> > > > problem if somebody has a module calling RelationIsSecurityView(). If
> > > > anyone thinks we should be concerned about such an ABI change, please
> > > > shout quickly.
> > >
> > > That sounds problematic --- surely StdRdOptions might be something
> > > extensions are making use of?
> >
> > So can we assume that security_barrier is the only thing to be concerned
> > about? If so, the attached patch should work around the issue by
> > placing it in the same physical location.
>
> Aw. How instead about temporarily introducing AutoVacMXactOpts or
> something? Changing the name of the member variable sounds just as
> likely to break things.
So here are two patches -- the first one, for 9.3 and HEAD, introduce
the new aging variables and use them throughout vacuum and autovacuum,
including per-table options; the second one adjusts the struct
declarations to avoid the ABI break in VacuumStmt and StdRdOptions.
(Actually, for HEAD I needed to fix a failed merge due to the removal of
freeze age params to cluster_rel in commit 3cff1879f, but there's
nothing interesting there so I'm not posting that part.)
--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services