Re: BUG #16303: A condtion whether an index-only scan is possible includes a wrong
Horimoto Yasuhiro <horimoto@clear-code.com>
From: Horimoto Yasuhiro <horimoto@clear-code.com>
To: pgsql-bugs@lists.postgresql.org
Date: 2020-03-16T06:05:33Z
Lists: pgsql-bugs
Attachments
- fix_check_index_only_scan.patch (text/x-patch) patch
I send a patch for this problem. thanks! From: PG Bug reporting form <noreply@postgresql.org> Subject: BUG #16303: A condtion whether an index-only scan is possible includes a wrong Date: Mon, 16 Mar 2020 06:02:25 +0000 > The following bug has been logged on the website: > > Bug reference: 16303 > Logged by: Horimoto Yasuhiro > Email address: horimoto@clear-code.com > PostgreSQL version: 12.2 > Operating system: Debian 10.3 > Description: > > Hello, developers. > > I think that the condition of whether an index-only scan is possible > includes a wrong. > > For example, in the following case, the index has no data to return. Because > the query doesn't use specify columns. > However, the query planner choice index-only scan. > > create table gist_count_tbl (tsv tsvector); > insert into gist_count_tbl values (null); > create index gist_count_tbl_index on gist_count_tbl using gist (tsv); > > vacuum analyze gist_count_tbl; > > set enable_seqscan=off; > set enable_bitmapscan=off; > set enable_indexonlyscan=on; > > explain (costs off) > select count(*) from gist_count_tbl; > QUERY PLAN > -------------------------------------------------------------------- > Aggregate > -> Index Only Scan using gist_count_tbl_index on gist_count_tbl > (2 rows) > > In my opinion, we expected that the query planner doesn't choose an > index-only scan in the above case. > > In fact, index_canreturn_attrs of > https://github.com/postgres/postgres/blob/master/src/backend/optimizer/path/indxpath.c#L1951 > is NULL in the above case. > > thanks! >