On Thu, May 7, 2020 at 10:49 AM Amarendra Konda <amar.vijaya@xxxxxxxxx> wrote:
Can you please explain, why it is getting more columns in output, even though we have asked for only one column ?
Output: pa.process_activity_id, pa.process_activity_type, pa.voice_url, pa.process_activity_user_id, pa.app_id, pa.process_instance_id, pa.alias, pa.read_by_user, pa.source, pa.label_category_id, pa.label_id, pa.csat_response_id,
m.process_activity_fragments, pa.created, pa.updated, pa.rule_id, pa.marketing_reply_id, pa.delivered_at, pa.reply_fragments, pa.status_fragment, pa.internal_meta, pa.interaction_id, pa.do_not_translate, pa.should_translat
e, pa.in_reply_to
Not knowing the source code in this area at all...
I'm pretty sure its because it doesn't matter. The executor retrieves data "pages", 8k blocks containing multiple records, then extracts specific full tuples from there. At that point its probably just data pointers being passed around. Its not until the end that the planner/executor has to decide which subset of columns to return to the user, or when a new tuple structure has to be created anyway (say because of joining), maybe, does it take the effort of constructing a minimally necessary output column set.
David J.