> Patch teaches it to ignore nulls when it's known that the operator being
> used is strict. It is harmless and has the benefit that constraint
> exclusion gives an answer that is consistent with what actually running
> such a qual against a table's rows would do.
Yes, I understood that. I just meant that I don't know if it is the
best way to skip NULLs inside "next_fn". Maybe the caller of the
"next_fn"s should skip them. Anyway, the committer can judge this
> Yeah. Rearranged the code to fix that.
This version looks correct to me.
> + state->next = (state->next != NULL) ? lnext(state->next) : NULL;
> + node = (state->next != NULL) ? lfirst(state->next) : NULL;
I think it is unnecessary to check for (state->next != NULL) two
times. We can put those in a single if.