Amit Langote <Langote_Amit_f8@xxxxxxxxxxxxx> writes: > On 2018/10/26 18:59, Tom Lane wrote: >> After a quick look around, I think that making systable_begin/endscan >> do this is a nonstarter; there are just too many call sites that would >> be affected. Now, you could imagine specifying that indexes on system >> catalogs (in practice, only btree) have to clean up at endscan time >> but other index types don't, so that only operations that might be >> scanning user indexes need to have suitable wrapping contexts. Not sure >> there's a lot of benefit to that, though. > By "core code", I didn't mean systable_being/endscan, but rather > check_exclusion_or_unique_constraint() or its core-side caller(s). Well, we'd need to consider any call path leading to index_endscan. One of those is systable_endscan and its multitude of callers. It seems unlikely that you could just switch context in systable_beginscan without breaking many of the callers. If we forbade leaks in system catalog index AMs, then the number of places that would need work would be manageable (about 3, it looked like). But then it seems more like a wart than a real API improvement. regards, tom lane