Tender Wang <tndrwang@gmail.com> writes:
> While working on another issue, I stepped into match_orclause_to_indexcol().
> I found below codes:
> /* Only the operator returning a boolean suit the transformation. */
> if (get_op_rettype(opno) != BOOLOID)
> break;
I don't understand what purpose this check serves at all.
We are looking at an arm of an OR clause, so it had better
yield boolean.
If anything, this is actively wrong, because for example it'd
reject a polymorphic operator that yields boolean in-context.
In general, this code looks like a mess. There are a lot of
Asserts that might be okay in development but probably should
not have got committed, and the comments need work.
regards, tom lane