Re: Improper use about DatumGetInt32
Peter Eisentraut <peter.eisentraut@enterprisedb.com>
From: Peter Eisentraut <peter.eisentraut@enterprisedb.com>
To: Michael Paquier <michael@paquier.xyz>,
Alvaro Herrera <alvherre@alvh.no-ip.org>
Cc: Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>,
Ashutosh Bapat <ashutosh.bapat@2ndquadrant.com>,
Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>,
Robert Haas <robertmhaas@gmail.com>, Andres Freund <andres@anarazel.de>,
"Hou, Zhijie" <houzj.fnst@cn.fujitsu.com>,
PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2021-01-08T09:21:15Z
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.
Commits
-
pageinspect: Change block number arguments to bigint
- f18aa1b20393 14.0 landed
-
tablefunc: Reject negative number of tuples passed to normal_rand()
- f73999262ed6 14.0 landed
-
Use PG_GETARG_TRANSACTIONID where appropriate
- dd26a0ad760b 14.0 landed