... oh, one other thought: instead of what you did in
InitIndexAmRoutine, we should probably do something like

{
    MemoryContext oldcontext;

    /*
     * We formerly specified that the amhandler should return a
     * palloc'd struct.  That's now deprecated in favor of returning
     * a pointer to a static struct, but to avoid completely breaking
     * old external AMs, run the amhandler in the relation's rd_indexcxt.
     */
    oldcontext = MemoryContextSwitchTo(relation->rd_indexcxt);
    relation->rd_indam = GetIndexAmRoutine(relation->rd_amhandler);
    MemoryContextSwitchTo(oldcontext);
}

                        regards, tom lane


Reply via email to