• Tom Lane's avatar
    Don't use_physical_tlist for an IOS with non-returnable columns. · 277e744a
    Tom Lane authored
    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
    277e744a
createplan.c 213 KB