Michael Paquier <michael.paquier@gmail.com> writes:
> The logic for nested OR is correct by reading it, hence why not simply
> removing the assertion failing? The attached patch 1 does so.
The reason for the assert is that there should never be an OR directly
underneath an OR in the planner after eval_const_expressions has flattened
such cases. Evidently commit f343a88 failed to preserve AND/OR flatness
in some cases :-(. That code should be taught to do so, rather than
lobotomizing this assertion. Lack of flatness causes optimization
inefficiencies, which is why we don't want to just allow it.
regards, tom lane