| From: | Ashutosh Bapat <ashutosh(dot)bapat(dot)oss(at)gmail(dot)com> | 
|---|---|
| To: | David Rowley <dgrowleyml(at)gmail(dot)com> | 
| Cc: | Ranier Vilela <ranier(dot)vf(at)gmail(dot)com>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org> | 
| Subject: | Re: Avoid a possible out-of-bounds access (src/backend/optimizer/util/relnode.c) | 
| Date: | 2023-09-26 10:34:36 | 
| Message-ID: | CAExHW5sUbbySGSDsZ5Wmf06wRV-4M0jsvh8NHw3wLPL6UA9iZg@mail.gmail.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-hackers | 
On Tue, Sep 26, 2023 at 3:32 PM David Rowley <dgrowleyml(at)gmail(dot)com> wrote:
>
> find_base_rel() could be made more robust for free by just casting the
> relid and simple_rel_array_size to uint32 while checking that relid <
> root->simple_rel_array_size.  The 0th element should be NULL anyway,
> so "if (rel)" should let relid==0 calls through and allow that to
> ERROR still. I see that just changes a "jle" to "jnb" vs adding an
> additional jump for Ranier's version. [1]
That's a good suggestion.
I am fine with find_base_rel() as it is today as well. But
future-proofing it seems to be fine too.
>
> It seems worth not making find_base_rel() more expensive than it is
> today as commonly we just reference root->simple_rel_array[n] directly
> anyway because it's cheaper. It would be nice if we didn't add further
> overhead to find_base_rel() as this would make the case for using
> PlannerInfo.simple_rel_array directly even stronger.
I am curious, is the overhead in find_base_rel() impacting overall performance?
-- 
Best Wishes,
Ashutosh Bapat
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Peter Eisentraut | 2023-09-26 10:48:17 | Re: Build the docs if there are changes in docs and don't run other tasks if the changes are only in docs | 
| Previous Message | Peter Eisentraut | 2023-09-26 10:34:34 | Re: Add const qualifiers |