Re: Unimpressed with pg_attribute_always_inline

From: Thomas Munro <thomas(dot)munro(at)enterprisedb(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Andres Freund <andres(at)anarazel(dot)de>, pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: Unimpressed with pg_attribute_always_inline
Date: 2018-01-04 11:11:19
Message-ID: CAEepm=2iTKvbebiK3CdoczQk4_FfDt1EeU4c+nGE340JH7gQ0g@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Tue, Jan 2, 2018 at 4:58 PM, Thomas Munro
<thomas(dot)munro(at)enterprisedb(dot)com> wrote:
> On Tue, Jan 2, 2018 at 4:17 PM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>> gaur | nodeHashjoin.c:167: warning: `always_inline' attribute directive ignored
>> mastodon | .\src\backend\executor\nodeHashjoin.c(165): warning C4141: 'inline' : used more than once
>
> 1. MSVC doesn't like you to say both "__forceinline" and "inline".
>
> 2. GCC 2.95.3 doesn't understand always_inline. From a quick look at
> archived manuals, it seems that that attribute arrived in 3.1.

Here is one way to fix those warnings. Thoughts?

>> Therefore, I think that pg_attribute_always_inline is not merely
>> useless but actively bad, and should be removed.

How about a macro PG_NOINLINE, which, if defined, inhibits this? Or I
could give up this strategy and maintain two separate very similar
functions, ExecHashJoin and ExecParallelHashJoin.

--
Thomas Munro
http://www.enterprisedb.com

Attachment Content-Type Size
fix-always-inline-warnings.patch application/octet-stream 1.9 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Simon Riggs 2018-01-04 11:24:20 Re: [PATCH] Logical decoding of TRUNCATE
Previous Message David Rowley 2018-01-04 07:54:29 Re: [HACKERS] UPDATE of partition key