From: | songjinzhou <tsinghualucky912(at)foxmail(dot)com> |
---|---|
To: | pgsql-hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Cc: | David Rowley <dgrowleyml(at)gmail(dot)com>, Japin Li <japinli(at)hotmail(dot)com> |
Subject: | Modify an incorrect regression test case in the group by key value elimination function |
Date: | 2025-02-18 07:40:35 |
Message-ID: | tencent_CD414C79D39668455DF80D35143B87634C08@qq.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Dear hackers:
Two months ago, we enhanced the group by key value elimination function. This is a very useful function. When I was learning, I found a regression test case that was not suitable, as follows:
-- When there are multiple supporting unique indexes and the GROUP BY contains
-- columns to cover all of those, ensure we pick the index with the least
-- number of columns so that we can remove more columns from the GROUP BY.
explain (costs off) select a,b,c from t3 group by a,b,c;
QUERY PLAN
----------------------
HashAggregate
Group Key: c
-> Seq Scan on t3
(3 rows)
-- As above but try ordering the columns differently to ensure we get the
-- same result.
explain (costs off) select a,b,c from t3 group by c,a,b;
QUERY PLAN
----------------------
HashAggregate
Group Key: c
-> Seq Scan on t3
(3 rows)
Because the table structure of t3 is defined as follows(Its PK is deferrable):
postgres=# \d+ t3
Table "pg_temp_1.t3"
Column | Type | Collation | Nullable | Default | Storage | Compression | Stats target | Description
--------+---------+-----------+----------+---------+---------+-------------+--------------+-------------
a | integer | | not null | | plain | | |
b | integer | | not null | | plain | | |
c | integer | | not null | | plain | | |
Indexes:
"t3_pkey" PRIMARY KEY, btree (a, b) DEFERRABLE
"t3_c_uidx" UNIQUE, btree (c)
Not-null constraints:
"t3_a_not_null" NOT NULL "a"
"t3_b_not_null" NOT NULL "b"
"t3_c_not_null" NOT NULL "c"
Access method: heap
postgres=#
I think this test case does not fully reflect the original meaning. So I made a small change to this and look forward to your feedback. Thanks!
Attachment | Content-Type | Size |
---|---|---|
v1_0001-Modify-an-incorrect-regression-test-case-in-the-grou.patch | application/octet-stream | 2.7 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Michael Paquier | 2025-02-18 07:50:22 | Re: ReplicationSlotRelease() crashes when the instance is in the single user mode |
Previous Message | Hayato Kuroda (Fujitsu) | 2025-02-18 07:29:51 | RE: ReplicationSlotRelease() crashes when the instance is in the single user mode |