Обсуждение: pgsql: Refer to replication origin roident as "ID" in user facing messa

Поиск
Список
Период
Сортировка

pgsql: Refer to replication origin roident as "ID" in user facing messa

От
John Naylor
Дата:
Refer to replication origin roident as "ID" in user facing messages and docs

The table column that stores this is of type oid, but is actually limited
to uint16 and has a different path for creating new values. Some of
the documentation already referred to it as an ID, so let's standardize
on that.

While at it, most format strings already use %u, so for consintency
change the remaining stragglers using %d.

Per suggestions from Tom Lane and Justin Pryzby
Discussion: https://www.postgresql.org/message-id/3437166.1659620465%40sss.pgh.pa.us
Backpatch to v15

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/c920fe48181d81ce218faa746f8af92c41d03b2e

Modified Files
--------------
doc/src/sgml/replication-origins.sgml    |  4 ++--
src/backend/replication/logical/origin.c | 16 ++++++++--------
2 files changed, 10 insertions(+), 10 deletions(-)


Re: pgsql: Refer to replication origin roident as "ID" in user facing messa

От
Peter Eisentraut
Дата:
On 18.08.22 04:10, John Naylor wrote:
> While at it, most format strings already use %u, so for consintency
> change the remaining stragglers using %d.

This is incorrect.  Replication origin IDs are of type uint16, which 
gets promoted to int in a variable arguments list, so %d is the correct 
placeholder.




Re: pgsql: Refer to replication origin roident as "ID" in user facing messa

От
John Naylor
Дата:
On Thu, Aug 18, 2022 at 4:49 PM Peter Eisentraut
<peter.eisentraut@enterprisedb.com> wrote:
>
> On 18.08.22 04:10, John Naylor wrote:
> > While at it, most format strings already use %u, so for consintency
> > change the remaining stragglers using %d.
>
> This is incorrect.  Replication origin IDs are of type uint16, which
> gets promoted to int in a variable arguments list, so %d is the correct
> placeholder.

I would think that for uint16, either %d or %u would have the same
result. Is there some other consideration I'm not aware of?

-- 
John Naylor
EDB: http://www.enterprisedb.com



Re: pgsql: Refer to replication origin roident as "ID" in user facing messa

От
Peter Eisentraut
Дата:
On 19.08.22 03:06, John Naylor wrote:
> On Thu, Aug 18, 2022 at 4:49 PM Peter Eisentraut
> <peter.eisentraut@enterprisedb.com> wrote:
>>
>> On 18.08.22 04:10, John Naylor wrote:
>>> While at it, most format strings already use %u, so for consintency
>>> change the remaining stragglers using %d.
>>
>> This is incorrect.  Replication origin IDs are of type uint16, which
>> gets promoted to int in a variable arguments list, so %d is the correct
>> placeholder.
> 
> I would think that for uint16, either %d or %u would have the same
> result. Is there some other consideration I'm not aware of?

Every once in a while, I build PostgreSQL with -Wformat-signedness, 
which often finds issues with OIDs and timeline IDs printed with the 
wrong placeholder.  There is a lot of noise to skip past when doing 
that, but in the long run it would be nice if we didn't add more of it.




Re: pgsql: Refer to replication origin roident as "ID" in user facing messa

От
John Naylor
Дата:
On Mon, Aug 22, 2022 at 9:35 PM Peter Eisentraut
<peter.eisentraut@enterprisedb.com> wrote:
>
> On 19.08.22 03:06, John Naylor wrote:
> > On Thu, Aug 18, 2022 at 4:49 PM Peter Eisentraut
> > <peter.eisentraut@enterprisedb.com> wrote:
> >>
> >> On 18.08.22 04:10, John Naylor wrote:
> >>> While at it, most format strings already use %u, so for consintency
> >>> change the remaining stragglers using %d.
> >>
> >> This is incorrect.  Replication origin IDs are of type uint16, which
> >> gets promoted to int in a variable arguments list, so %d is the correct
> >> placeholder.
> >
> > I would think that for uint16, either %d or %u would have the same
> > result. Is there some other consideration I'm not aware of?
>
> Every once in a while, I build PostgreSQL with -Wformat-signedness,
> which often finds issues with OIDs and timeline IDs printed with the
> wrong placeholder.  There is a lot of noise to skip past when doing
> that, but in the long run it would be nice if we didn't add more of it.

Thanks for the info; I've pushed a patch.

-- 
John Naylor
EDB: http://www.enterprisedb.com