Hi!
It seems there is disagreement about what the correct interpretation of NULL in the rev_content_model column is. Should NULL there mean
(a) "the current page content model, as recorded in page_content_model"
or should it mean
(b) "the default for this title, no matter what page_content_model says"?
As I understand, NULL is there as a space-saving measure. So I guess we want to ask ourselves if we want to go to so much trouble to save space...
Abstractly, a) looks better than b) for me since the scenario where default changed and all pages with all default are now broken is avoided there. OTOH, if the pages are updated together with the default, that must have caused page_content_model to update too, so in this case a) should work too.
There is also an in-between option, let's call it a/b: fall back to page_content_model for the latest revision (that should *always* be right), but to ignore page_content_model for older revisions. That would cater to use case
This may be even better, since page record is supposed to match latest revisions, but not prior revisions. That still leaves prior revisions in case of default change broken, but at least current one isn't.