On 2018-06-14 15:59:22 +0300, Alexander Korotkov wrote: > > b) extensions containing AMs would need to do something INSERT ... ON > > CONFLICT DO NOTHING like. > > We already have CREATE ACCESS METHOD command. I think this command > should handle that internally. And I don't understand why "ON > CONFLICT DO NOTHING". If AM with given name already exists in pg_am, > why should we ignore the error?
Well, right now an AM containing extension creates things in each database (i.e. same scope as extensions). But with shared AMs that wouldn't be the case - you might still want to create the extension in another database. So we'd need to have CREATE ACCESS METHOD check whether already is the same entry, and only delete it on DROP ACCESS METHOD if there's no dependencies from other databases... Greetings, Andres Freund