Re: should check collations when creating partitioned index

Peter Eisentraut <peter@eisentraut.org>

From: Peter Eisentraut <peter@eisentraut.org>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Laurenz Albe <laurenz.albe@cybertec.at>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2023-11-20T10:21:41Z
Lists: pgsql-hackers
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.




Commits

  1. Check collation when creating partitioned index