From: | Peter Eisentraut <peter(at)eisentraut(dot)org> |
---|---|
To: | Richard Guo <guofenglinux(at)gmail(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Redundant Result node |
Date: | 2024-08-22 11:32:43 |
Message-ID: | 28acf76f-1e79-4f20-887b-e0e5bdbff5e2@eisentraut.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 22.08.24 09:34, Richard Guo wrote:
> I looked into this a little bit and found that in function
> create_ordered_paths, we decide whether a projection step is needed
> based on a simple pointer comparison between sorted_path->pathtarget
> and final_target.
>
> /* Add projection step if needed */
> if (sorted_path->pathtarget != target)
> sorted_path = apply_projection_to_path(root, ordered_rel,
> sorted_path, target);
>
> This does not seem right to me, as PathTargets are not canonical, so
> we cannot guarantee that two identical PathTargets will have the same
> pointer. Actually, for the query above, the two PathTargets are
> identical but have different pointers.
>
> I wonder if we need to invent a function to compare two PathTargets.
Wouldn't the normal node equal() work?
From | Date | Subject | |
---|---|---|---|
Next Message | vignesh C | 2024-08-22 11:58:21 | Re: Pgoutput not capturing the generated columns |
Previous Message | Rafia Sabih | 2024-08-22 11:29:07 | Re: Support tid range scan in parallel? |