Re: should check collations when creating partitioned index - Mailing list pgsql-hackers

From Peter Eisentraut
Subject Re: should check collations when creating partitioned index
Date
Msg-id 6a86e6ba-3a45-4764-bd01-069a0933b4ca@eisentraut.org
Whole thread Raw
In response to Re: should check collations when creating partitioned index  (Peter Eisentraut <peter@eisentraut.org>)
Responses Re: should check collations when creating partitioned index
List pgsql-hackers
On 23.11.23 11:01, Peter Eisentraut wrote:
> On 20.11.23 17:25, Tom Lane wrote:
>> Peter Eisentraut <peter@eisentraut.org> writes:
>>> 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?
>>
>> The case that was bothering me was if we had a non-collated type
>> versus a collated type.  That would result in throwing an error
>> about collation mismatch, when complaining about the opclass seems
>> more apropos.  However, if we do this:
>>
>>> I see.  That means we shouldn't raise an error on a mismatch but just do
>>>       if (key->partcollation[i] != collationIds[j])
>>>           continue;
>>
>> it might not matter much.
> 
> Here is an updated patch that works as indicated above.
> 
> The behavior if you try to create an index with mismatching collations 
> now is that it will skip over the column and complain at the end with 
> something like
> 
> ERROR:  0A000: unique constraint on partitioned table must include all 
> partitioning columns
> DETAIL:  UNIQUE constraint on table "t1" lacks column "b" which is part 
> of the partition key.
> 
> which perhaps isn't intuitive, but I think it would be the same if you 
> somehow tried to build an index with different operator classes than the 
> partitioning.  I think these less-specific error messages are ok in such 
> edge cases.

If there are no further comments on this patch version, I plan to go 
ahead and commit it soon.




pgsql-hackers by date:

Previous
From: Peter Eisentraut
Date:
Subject: Re: patch: improve "user mapping not found" error message
Next
From: Andrei Lepikhov
Date:
Subject: Re: Custom explain options