Andres Freund <andres@2ndquadrant.com> writes:
> On 2014-06-20 16:50:15 -0400, Alvaro Herrera wrote:
>> Non-unique indexes in indexing.h
>> already bear a standard comment that they are not used for syscache.
>> The only exception was added recently in f01d1ae3a104019:
>> DECLARE_INDEX(pg_class_tblspc_relfilenode_index, 3455, on pg_class using btree(reltablespace oid_ops, relfilenode
oid_ops));
> There's no NULLs in here. It can have duplicates, but in that it's far
> from alone.
I think Alvaro was complaining that it's alone in lacking this comment:
/* This following index is not used for a cache and is not unique */
But TBH, I don't think those comments are worth much. I'd rather get
rid of them all and instead add an Assert to the cache code enforcing
that any index underlying a catcache is unique. It looks like the
easiest place to do that is InitCatCachePhase2 --- that's the only place
in catcache.c that actually opens the underlying index directly.
I'd like to also have an Assert in there that the index columns are
marked NOT NULL, but not sure if they actually all are marked that
way today.
regards, tom lane