On 21/03/16 23:26, Alvaro Herrera wrote:
> Alexander Korotkov wrote:
>> Hi!
>>
>> Thank you for review!
>
> So. Before this version of the patch was posted in Nov 4th 2015, both
> Tom and Heikki had said essentially "CREATE ACCESS METHOD is worthless,
> let's pursue this stuff without those commands".
> http://www.postgresql.org/message-id/54730DFD.2060703@vmware.com (Nov 2014)
> http://www.postgresql.org/message-id/26822.1414516012@sss.pgh.pa.us (Oct 2014)
>
And in sequence am thread Robert said the opposite.
> And then Alexander posted this version, without any discussion that
> evidenced that those old objections were overridden. What happened
> here? Did somebody discuss this in unarchived meetings? If so, it
> would be good to know about that in this thread.
Well there are two main reasons for having DDL, one is dependency
tracking and the other is binary upgrade. We can solve part of
dependency tracking by recoding dependency between opclass and amhandler
instead of opclass and access method, that would work fine. I don't know
how to clean pg_am on DROP EXTENSION though without the dependency support.
I also am not sure what is good way of solving binary upgrade without
any kind of DDL. Adding another pg_catalog.binary_upgrade_<something>
function would be potential solution if we really think DDL is bad idea
for access methods in general. Actually thinking of this, we might
actually need function like in any case if we are recoding dependencies
on access methods (which means it would probably be better to record
dependency of opclass on amhandler as mentioned before, since this is
already solved for functions and if the oid of am is not referenced
anywhere it does not need special handling for binary upgrade).
-- Petr Jelinek http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training &
Services