Attached patch is implementing this. It doesn't pretend to be fully correct implementation, but it should be enough for proof the concept. In this patch access method exposes another function: amvalidate. It takes data structure representing opclass and throws error if it finds it invalid. This method is used on new opclass definition (alter operator family etc. are not yet implemented but planned). Also, there is SQL function validate_opclass(oid) which is used in regression tests. Any thoughts?
This is starting to look good
Thanks!
However I don't like the naming differences between validate_opclass and amvalidate. If you expect that the current amvalidate will only be used for opclass validation then it should be renamed accordingly.
I'm not yet sure if we need separate validation of opfamilies.
Also GetIndexAmRoutine should check the return type of the amhandler.
Will be fixed.
------ Alexander Korotkov Postgres Professional: http://www.postgrespro.com The Russian Postgres Company