From: | Yongtao Huang <yongtaoh2022(at)gmail(dot)com> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | Why scan all columns when we select distinct c1? |
Date: | 2024-01-14 11:17:48 |
Message-ID: | CAOe1Go3uHkTrgBMm1O2pVWQAV09ZxVW_vaKM1GeAkAu_RByt2A@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
PostgreSQL version: 16.1
Operating system: centos7
Description:
Let me show these explain results first, in PG9.4 and PG16.1.
### Behavior in PG9.4
``` SQL
gpadmin=# create table t1 (c1 int, c2 text);
CREATE TABLE
gpadmin=# explain (costs off, verbose) select distinct c1 from t1;
QUERY PLAN
-----------------------------
HashAggregate
Output: c1
Group Key: t1.c1
-> Seq Scan on public.t1
Output: c1 <---- pay attention <---- !!!
(5 rows)
```
### Behavior in PG 16.1
``` SQL
gpadmin=# create table t1 (c1 int, c2 text);
CREATE TABLE
gpadmin=# explain (costs off, verbose) select distinct c1 from t1;
QUERY PLAN
-----------------------------
HashAggregate
Output: c1
Group Key: t1.c1
-> Seq Scan on public.t1
Output: c1, c2 <---- pay attention <---- !!!
(5 rows)
```
My question is why scan all columns in PG 16.01?
If `select distinct c1`, scan the column `c1` is enough, like PG 9.4.
Related GPDB issue link: https://github.com/greenplum-db/gpdb/issues/15266
Reporter: David Kimura and Yongtao Huang
From | Date | Subject | |
---|---|---|---|
Next Message | Ron Johnson | 2024-01-14 14:51:28 | Re: Why scan all columns when we select distinct c1? |
Previous Message | Ian Lawrence Barwick | 2024-01-14 11:09:54 | Re: Help with "Create Extension unaccent" |