From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Andrew Gierth <andrew(at)tao11(dot)riddles(dot)org(dot)uk> |
Cc: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Adding lfirst_node (was Re: [sqlsmith] Planner crash on foreign table join) |
Date: | 2017-04-10 16:20:16 |
Message-ID: | 14197.1491841216@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
I wrote:
> Andrew Gierth <andrew(at)tao11(dot)riddles(dot)org(dot)uk> writes:
>> In a discussion with Andres on the hash grouping sets review thread, I
>> proposed that we should have something of the form
>> #define lfirst_node(_type_, l) (castNode(_type_,lfirst(l)))
> That seems like a fairly good idea. A significant fraction of the
> existing castNode() calls are being applied to lfirst(something),
> and this would shorten that idiom a bit.
PFA a patch to do this. It turns out that just under half of the
castNode() calls in the current tree have List-cell-extraction
functions as arguments, and so can be replaced like this. So I think
this is a great idea and we should do it; it's a definite notational
improvement.
As with the original addition of castNode, it seems like a good idea
to back-patch the additions to pg_list.h, so that we won't have
back-patching problems for new code using this feature.
> There's another noticeable fraction that are being applied to
> linitial(something), but I'm not sure if defining linitial_node()
> is worth the trouble.
It is, and in fact I ended up providing equivalents for all the
List-cell-extraction functions. All except lfourth_node() are
actually in use in this patch.
Barring objections, I'll push this shortly.
regards, tom lane
Attachment | Content-Type | Size |
---|---|---|
add-lfirst_node-and-friends.patch | text/x-diff | 65.7 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Andres Freund | 2017-04-10 16:23:38 | Re: Adding lfirst_node (was Re: [sqlsmith] Planner crash on foreign table join) |
Previous Message | Andres Freund | 2017-04-10 16:16:27 | Re: GCC 7 warnings |