On 2014-06-20 16:50:15 -0400, Alvaro Herrera wrote:
> Tom Lane wrote:
>
> > The idea I'm toying with right now is to additionally mark as not nullable
> > any column referenced in a DECLARE_UNIQUE_INDEX command in
> > catalog/indexing.h. But I've not looked through that set carefully; it's
> > conceivable that we actually have some indexed catalog columns that are
> > allowed to be null. A possibly better solution is to invent a new macro
> > that has the same semantics as DECLARE_UNIQUE_INDEX, plus forcing the
> > columns to be marked NOT NULL.
>
> I think most, if not all, the unique indexes declared are part of a
> syscache. I don't think we allow those to be null, so in effect those
> columns are already not nullable.
> 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.
Greetings,
Andres Freund
-- Andres Freund http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training &
Services