I've just noticed that we were guilty of very sloppy thinking in
defining pg_class.relhasexclusion. The only place that actually
*uses* that value, rather than jumping through hoops to maintain it,
is BuildIndexInfo --- and what it's looking at is not the pg_class
entry of the table, but the pg_class entry of the index. There is
no need whatsoever to maintain such a flag at the table level.
This being the case, I think we should move the flag to pg_index
(and rename it to indisexclusion). That will get rid of all the
semantic fuzziness around it, the need to update it in VACUUM,
etc.
regards, tom lane