Another thought on the index AM API issues: after poking through the code I realized that there is *nobody* paying any attention to the existing bool result of aminsert() (ie, did we insert anything or not). So I think that instead of adding a bool* parameter, we should repurpose the function result, along the lines of this spec:
<para> The method's boolean result value is significant only when <literal>checkUnique</> is <literal>UNIQUE_CHECK_PARTIAL</>. In this case a TRUE result means the new entry is known unique, whereas FALSE means it might be non-unique (and a deferred uniqueness check must be scheduled). For other cases a constant FALSE result is recommended. </para> <para> For non-unique indexes, it is not required that <function>aminsert</> do anything; it might for instance refuse to index NULLs. </para> The bool* parameter is fairly ugly in a couple of ways: it's not clear when it's okay to pass a NULL pointer, and the compiler doesn't give you a lot of help in being sure you've set the result in all code paths. So I'd rather not use one if we don't have to. regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers