Tom Lane <[email protected]> 于2025年9月20日周六 00:16写道:

> Tender Wang <[email protected]> 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.
>

Yeah, this check doesn't need any more. I removed this check in the
attached patch.

In match_index_to_operand(), the indexExpr has been ignored, so I removed
below check, too.
- if (IsA(indexExpr, RelabelType))
- indexExpr = (Node *) ((RelabelType *) indexExpr)->arg;


> 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.
>

These assertions were removed by me, too.
I didn’t modify these code comments since English isn’t my native language,
and I’d appreciate your help with them.


-- 
Thanks,
Tender Wang

Attachment: 0001-Remove-some-asserts.patch
Description: Binary data

Reply via email to