Re: BUG #18568: BUG: Result wrong when do group by on partition table!
От | Amit Langote |
---|---|
Тема | Re: BUG #18568: BUG: Result wrong when do group by on partition table! |
Дата | |
Msg-id | CA+HiwqE5r538YCJPwFxi-UfzWo3AmS_f0wX=RmYGJ1Bb0sdoaQ@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: BUG #18568: BUG: Result wrong when do group by on partition table! (Tender Wang <tndrwang@gmail.com>) |
Ответы |
Re: BUG #18568: BUG: Result wrong when do group by on partition table!
Re: BUG #18568: BUG: Result wrong when do group by on partition table! |
Список | pgsql-bugs |
Hi, On Tue, Aug 6, 2024 at 10:24 PM Tender Wang <tndrwang@gmail.com> wrote: > PG Bug reporting form <noreply@postgresql.org> 于2024年8月6日周二 15:01写道: >> >> The following bug has been logged on the website: >> >> Bug reference: 18568 >> Logged by: Webbo Han >> Email address: 1105066510@qq.com >> PostgreSQL version: 16.3 >> Operating system: centos 7.6 >> Description: >> >> First, we create one case-insensitive collation use ICU: >> ```sql >> CREATE COLLATION case_insensitive ( >> provider = icu, >> locale = 'und-u-ks-level2', >> deterministic = false >> ); >> ``` >> >> Then, we create the partition table, meanwhile we set the collation of >> column c to `case_insensitive`, >> and set partkey's collation to 'C'. >> ```sql >> SET enable_partitionwise_aggregate TO true; >> SET enable_partitionwise_join TO true; >> SET max_parallel_workers_per_gather TO 0; >> SET enable_incremental_sort TO off; >> CREATE TABLE pagg_tab (c text collate case_insensitive) PARTITION BY LIST(c >> collate "C"); > > > I think above create table again. Should we allow this CREATE TABLE? The partition key > definition are not same with column definiton. Is it better to report error for users? Not really. As the documentation says, collation can be specified per column or per operation: https://www.postgresql.org/docs/current/collation.html In this case, the operation is partitioning. When you specify the COLLATE clause for a partition key, it means that the partitioning logic, such as partition tuple routing, will use that collation instead of the column-specified or the column type's collation. That's similar to how you can create an index on a column using a different collation than the column's own: create table foo (a text collate case_insensitive); create index on foo (a collate "C"); I do notice that the CREATE TABLE documentation does not describe what the COLLATE clause does when mentioned in a PARTITION BY clause. We'll need to fix that. -- Thanks, Amit Langote
В списке pgsql-bugs по дате отправления: