another bug.
I will dig later, just want to share it first.
minimum producer:
drop table if exists pp1,cc1, cc2,cc3;
create table pp1 (f1 int );
create table cc1 () inherits (pp1);
create table cc2() inherits(pp1,cc1);
create table cc3() inherits(pp1,cc1,cc2);
alter table pp1 alter f1 set not null;
ERROR: tuple already updated by self