On Tue, 2007-08-07 at 17:03 -0400, Tom Lane wrote:
> "Simon Riggs" <simon@2ndquadrant.com> writes:
> > How hard will it be to add the infrastructure to allow new index types
> > to be added to the server dynamically?
>
> INSERT INTO pg_am VALUES (...);
>
> I don't really think we need more than that, at least not till non-core
> index AMs are a whole lot thicker on the ground than they are today.
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.
So we can add a new AM, but it can't write WAL in a different way to
existing RMs.
We could either:
1. Remove the "Const" in front of RmgrTable in rmgr.c. That would allow
re-assignment of the two existing unused RMs.
2. Create a new catalog table pg_rm and some brief machinery to populate
the RmgrTable from pg_rm. That would allow dynamically adding RMs.
Seems like we could do (1) for 8.3 easily enough.
Thoughts, please?
-- Simon Riggs 2ndQuadrant http://www.2ndQuadrant.com