Why is omit_opclass a separate patch? If the included columns now never participate in the index ordering, shouldn't it be an inherent property of the main patch that you can "cover" things without btree opclasses?
I also wondered this. We can't have covering indexes without fixing the problem with the following arrays:
These need to be sized according to the number of key columns, not the total number of columns. Of course, the TODO item in the patch states this too.
I don't personally think the covering_unique_4.0.patch is that close to being too big to review, I think things would make more sense of the omit_opclass_4.0.patch was included together with this.