pg.ddx.io  pgsql-docs@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
To: rsto@paranoia.at
To: pgsql-docs@postgresql.org
Subject: Re: Int32 type unclear about signedness
Date: Fri, 1 Sep 2017 22:12:41 -0400
Message-ID: <bcd2c5e2-7ce0-ee5e-28ab-6a9981795c2d@2ndquadrant.com> (raw)
In-Reply-To: <20170823184523.8152.35782@wrigleys.postgresql.org>
References: <20170823184523.8152.35782@wrigleys.postgresql.org>
List-Unsubscribe: <mailto:majordomo@postgresql.org?body=unsub%20pgsql-docs>

On 8/23/17 14:45, rsto@paranoia.at wrote:
> Both its C-like name and its use for negative values in several protocol 3
> messages make assuming signedness only reasonable. Yet, when used for
> message lengths, the libpq code seems unclear:
> 
> The libpq frontend reads message lengths from the backend as 4 bytes into a
> signed int (see [2]). It checks if the length exceeds 30000 and allows
> excessive message lengths only for some messages.

That doesn't contradict anything about the value being signed.

> Yet, the related backend code uses a uint32_t to transmit the length value
> of a size_t (see [3]). This suggests that UINT32_MAX lengths would
> theoretically be possible and driver implementations would need to handle
> it.

That's because it calls ntonl() on the value, which requires an unsigned
argument.  It doesn't mean the original value is meant to be unsigned.

-- 
Peter Eisentraut              http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services


-- 
Sent via pgsql-docs mailing list (pgsql-docs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-docs



view thread (2+ messages)

Message-ID: <bcd2c5e2-7ce0-ee5e-28ab-6a9981795c2d@2ndquadrant.com>
Permalink:  ../bcd2c5e2-7ce0-ee5e-28ab-6a9981795c2d@2ndquadrant.com/
Also on:    postgresql.org/message-id/bcd2c5e2-7ce0-ee5e-28ab-6a9981795c2d@2ndquadrant.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-docs@postgresql.org
  Cc: peter.eisentraut@2ndquadrant.com, rsto@paranoia.at
  Subject: Re: Int32 type unclear about signedness
  In-Reply-To: <bcd2c5e2-7ce0-ee5e-28ab-6a9981795c2d@2ndquadrant.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox