Hi All, While reviewing the patch for pg_surgery contrib module - [1], Asim Praveen suggested that it would be better to replace the check for access method OID with handler OID. Otherwise, if someone creates a new AM using the AM handler that is originally supported for e.g. "heap_tableam_handler" and if this new AM is used to create a table, then one cannot perform surgery on such tables because we have checks for access method OID which would reject this new AM as we only allow heap AM. For e.g. if we do this:
create access method myam type table handler heap_tableam_handler; create table mytable (…) using myam; And use an access method OID check, we won't be able to perform surgery on mytable created above because it isn't the heap table although its table structure is actually heap. This problem won't be there if the check for access method OID is replaced with handler OID. I liked this suggestion from Asim and did the changes accordingly. However, while browsing the code for other contrib modules, I could find such checks present in some of the contrib modules like pgstattuple, pageinspect and pgrowlocks as well. So, just wondering if we should be doing similar changes in these contrib modules also. Thoughts? [1] - https://www.postgresql.org/message-id/1D56CEFD-E195-4E6B-B870-3383E3E8C65E%40vmware.com -- With Regards, Ashutosh Sharma EnterpriseDB:http://www.enterprisedb.com