On 4/10/21 8:56 PM, Tomas Vondra wrote:
> On 4/11/21 2:38 AM, Dave Cramer wrote:
>>
>>
>>
>> On Sat, 10 Apr 2021 at 20:34, Tom Lane <t...@sss.pgh.pa.us
>> <mailto:t...@sss.pgh.pa.us>> wrote:
>>
>>     Dave Cramer <davecra...@gmail.com <mailto:davecra...@gmail.com>> writes:
>>     > On Sat, 10 Apr 2021 at 20:24, Tom Lane <t...@sss.pgh.pa.us
>>     <mailto:t...@sss.pgh.pa.us>> wrote:
>>     >> That's quite bizarre.  What is the actual error level according to
>>     >> the source code, and where is the error being thrown exactly?
>>
>>     > Well it really is an ERROR, and is being downgraded on windows to
>>     WARNING.
>>
>>     That seems quite awful.
>>
>>     However, now that I think about it, the elog.h error-level constants
>>     were renumbered not so long ago.  Maybe you've failed to recompile
>>     everything for v14?
>>
>>
>> We see this on a CI with a fresh pull from master.
>>
>> As I said I will dig into it and figure it out. 
>>
> Well, plr.h does this:
>
> #define WARNING               19
> #define ERROR         20
>
> which seems a bit weird, because elog.h does this (since 1f9158ba481):
>
> #define WARNING               19
> #define WARNING_CLIENT_ONLY   20
> #define ERROR         21
>
> Not sure why this would break Windows but not Linux, though.
>
>


The coding pattern in plr.h looks quite breakable. Instead of hard
coding values like this they should save the value from the postgres
headers in another variable before undefining it and then restore that
value after inclusion of the R headers. That would work across versions
even if we renumber them.


cheers


andrew

-- 

Andrew Dunstan
EDB: https://www.enterprisedb.com



Reply via email to