Hi!
Let me join the review process.
I am no expert in execution plans, so there would not be much help in doing
even better optimization. But I can read the code, as a person who is not familiar
with this area and help making it clear even to a person like me.
So, I am reading v25-0001-Transform-OR-clauses-to-ANY-expression.patch that
have been posted some time ago, and especially transform_or_to_any function.
> @@ -38,7 +45,6 @@
> int from_collapse_limit;
> int join_collapse_limit;
>
> -
> /*
> * deconstruct_jointree requires multiple passes over the join tree, because we
> * need to finish computing JoinDomains before we start distributing quals.
Do not think that removing empty line should be part of the patch
> + /*
> + * If the const node's (right side of operator expression) type
> + * don't have “true†array type, then we cannnot do the
> + * transformation. We simply concatenate the expression node.
> + */
Guess using unicode double quotes is not the best idea here...
Now to the first part of `transform_or_to_any`