Re: Improper use about DatumGetInt32

From: Peter Eisentraut <peter(dot)eisentraut(at)enterprisedb(dot)com>
To: Michael Paquier <michael(at)paquier(dot)xyz>, Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
Cc: Ashutosh Bapat <ashutosh(dot)bapat(at)enterprisedb(dot)com>, Ashutosh Bapat <ashutosh(dot)bapat(at)2ndquadrant(dot)com>, Ashutosh Bapat <ashutosh(dot)bapat(dot)oss(at)gmail(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Robert Haas <robertmhaas(at)gmail(dot)com>, Andres Freund <andres(at)anarazel(dot)de>, "Hou, Zhijie" <houzj(dot)fnst(at)cn(dot)fujitsu(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Improper use about DatumGetInt32
Date: 2021-01-08 09:21:15
Message-ID: c6eaa580-9f2e-f9d8-feb5-2b56db9d56f6@enterprisedb.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 2020-12-25 08:45, Michael Paquier wrote:
>> If we really think that we ought to differentiate, then we could do what
>> pg_stat_statement does, and have a separate C function that's called
>> with the obsolete signature (pg_stat_statements_1_8 et al).
> With the 1.8 flavor, it is possible to pass down a negative number
> and it may not fail depending on the number of blocks of the relation,
> so I think that you had better have a compatibility layer if a user
> has the new binaries but is still on 1.8. And that's surely a safe
> move.

I think on 64-bit systems it's actually safe, but on 32-bit systems
(with USE_FLOAT8_BYVAL), if you use the new binaries with the old
SQL-level definitions, you'd get the int4 that is passed in interpreted
as a pointer, which would lead to very bad things. So I think we need
to create new functions with a different C symbol. I'll work on that.

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Bharath Rupireddy 2021-01-08 09:24:50 Re: EXPLAIN/EXPLAIN ANALYZE REFRESH MATERIALIZED VIEW
Previous Message Amit Kapila 2021-01-08 09:18:44 Re: Parallel INSERT (INTO ... SELECT ...)