| From: | Simon Riggs <simon(at)2ndquadrant(dot)com> | 
|---|---|
| To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> | 
| Cc: | Hackers <pgsql-hackers(at)postgresql(dot)org> | 
| Subject: | Re: Dynamically adding index types (was GIT indexes) | 
| Date: | 2007-09-21 14:16:37 | 
| Message-ID: | 1190384197.4202.56.camel@ebony.site | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-hackers | 
On Wed, 2007-09-19 at 10:37 -0400, Tom Lane wrote: 
> Simon Riggs <simon(at)2ndquadrant(dot)com> writes:
> > We're able to dynamically add AMs in the way you suggest, but there is
> > no way to alter the RMgrTable to either add a new RM or re-assign one of
> > the unused RMs.
> 
> Hmmm...
> > 1. Remove the "Const" in front of RmgrTable in rmgr.c. That would allow
> > re-assignment of the two existing unused RMs.
> 
> Useless, as there's no way for an add-on AM to cause the value to be
> changed before recovery begins.
OK, sounds like the only way is to have a dedicated plug-in.
if (resource_manager_hook)
   set RmgrTable in plugin
else
   normal static definition (but no longer Const)
...or variations of the above depending upon whether we want to allow
redefining existing Rmgrs - not something I personally want.
Plus something to say "xlog record found for unknown Rmgr".
Plus changes to all places that refer to RM_MAX_ID and replace with a
global value of RmgrTableEntries.
We can then get rid of the two reserved Rmgr values...
Will that do it?
-- 
  Simon Riggs
  2ndQuadrant  http://www.2ndQuadrant.com
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Andrew Dunstan | 2007-09-21 14:18:36 | Re: Schema access in PL/PGSQL for custom objects - i.e. type access? | 
| Previous Message | blay bloo | 2007-09-21 13:59:58 | Schema access in PL/PGSQL for custom objects - i.e. type access? |