On 14.11.23 17:15, Tom Lane wrote:
> I don't love the patch details though. It seems entirely wrong to check
> this before we check the opclass match.
Not sure why? The order doesn't seem to matter?
> Also, in at least some cases
> the code presses on looking for another match if the current opclass
> doesn't match; you've broken such cases.
I see. That means we shouldn't raise an error on a mismatch but just do
if (key->partcollation[i] != collationIds[j])
continue;
and then let the existing error under if (!found) complain.
I suppose we could move that into the
if (get_opclass_opfamily_and_input_type(...))
block. I'm not sure I see the difference.