Hello Tom
I just noticed your new efforts in this area.
I wanted to recurr to my old thread [1] considering constant propagation of quals.
You gave an elaborated explanation at that time, but my knowledge was/is not yet sufficient to reveil the technical details.
In our application the described method is widespread used with much success (now at pg15.1 Fedora), but for unexperienced SQL authors this is not really obviously to choose (i.e. using the explicit constant xx_season=3 as qual). This always requires a "Macro" processor to compose the queries (in my case php) and a lot of programmer effort in the source code.
I can't review/understand your patchset for the planner, but since it covers the same area, the beformentioned optimization could perhaps be addressed too.
With respect of the nullability of these quals I immediately changed all of them to NOT NULL, which seems the most natural way when these quals are also used for partioning.
[1] https://www.postgresql.org/message-id/1571413123735.26467@nidsa.net
Thanks for looking
Hans Buschmann