Ibrar Ahmed <ibrar.ah...@gmail.com> writes: > I give a quick look and I think in case whenever data is extracted from the > heap it shows all the columns. Therefore when columns are extracted from > the index only it shows the indexed column only.
This is operating as designed, and I don't think that the proposed patch is an improvement. The point of use_physical_tlist() is that returning all the columns is cheaper because it avoids a projection step. That's true for any case where we have to fetch the heap tuple, so IndexScan is included though IndexOnlyScan is not. Now, that's something that was true a decade or more ago. There's been considerable discussion recently about cases where it's not true anymore, for example with columnar storage or FDWs, and so we ought to invent a way to prevent createplan.c from doing it when it would be counterproductive. But just summarily turning it off is not an improvement. regards, tom lane