pgsql: Don't use_physical_tlist for an IOS with non-returnable columns.
От | Tom Lane |
---|---|
Тема | pgsql: Don't use_physical_tlist for an IOS with non-returnable columns. |
Дата | |
Msg-id | E1nIcSs-0007jk-CG@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Don't use_physical_tlist for an IOS with non-returnable columns. createplan.c tries to save a runtime projection step by specifying a scan plan node's output as being exactly the table's columns, or index's columns in the case of an index-only scan, if there is not a reason to do otherwise. This logic did not previously pay attention to whether an index's columns are returnable. That worked, sort of accidentally, until commit 9a3ddeb51 taught setrefs.c to reject plans that try to read a non-returnable column. I have no desire to loosen setrefs.c's new check, so instead adjust use_physical_tlist() to not try to optimize this way when there are non-returnable column(s). Per report from Ryan Kelly. Like the previous patch, back-patch to all supported branches. Discussion: https://postgr.es/m/CAHUie24ddN+pDNw7fkhNrjrwAX=fXXfGZZEHhRuofV_N_ftaSg@mail.gmail.com Branch ------ REL_14_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/277e744ae176ef8e411a9e6c5b2e649322ee6bdd Modified Files -------------- src/backend/optimizer/plan/createplan.c | 16 ++++++++++++++++ src/test/regress/expected/gist.out | 16 ++++++++++++++++ src/test/regress/sql/gist.sql | 5 +++++ 3 files changed, 37 insertions(+)
В списке pgsql-committers по дате отправления: