Subject: Clarification suggestion for 46.4 chapter.

From: Dmitriy Igrishin <[email-masked]>
Date: Mon, 5 Dec 2011 14:53:22 +0300

Hey,

The section 46.4 describes the base data types used in messages.
http://www.postgresql.org/docs/9.1/static/protocol-message-types.html

According to section 46.5
http://www.postgresql.org/docs/9.1/static/protocol-message-formats.html
there are cases when Int32 can be negative (e.g. see DataRow(B) message
description.)

Thus, I would like to suggest to change the description of Int(i)
from
"An n-bit integer in network byte order ..."
to
"An n-bit signed integer in network byte order ..."

-- 
// Dmitriy.

---

From: Bruce Momjian <[email-masked]>
Date: Thu, 16 Aug 2012 22:07:35 -0400

> "An n-bit signed integer in network byte order ..."

OK, documentation updated.

-- 
  Bruce Momjian  <[email-masked]>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + It's impossible for everything to be true. +
diff --git a/doc/src/sgml/protocol.sgml b/doc/src/sgml/protocol.sgml
new file mode 100644
index e725563..8778c58
*** a/doc/src/sgml/protocol.sgml
--- b/doc/src/sgml/protocol.sgml
*************** This section describes the base data typ
*** 1819,1825 ****
  </term>
  <listitem>
  <para>
!                 An <replaceable>n</replaceable>-bit integer in network byte
                  order (most significant byte first).
                  If <replaceable>i</replaceable> is specified it
                  is the exact value that will appear, otherwise the value
--- 1819,1825 ----
  </term>
  <listitem>
  <para>
!                 An <replaceable>n</replaceable>-bit signed integer in network byte
                  order (most significant byte first).
                  If <replaceable>i</replaceable> is specified it
                  is the exact value that will appear, otherwise the value

---

From: Heikki Linnakangas <[email-masked]>
Date: Fri, 17 Aug 2012 11:54:54 +0300

> OK, documentation updated.

Actually, in some cases the integers are signed, and in others unsigned. 
For example, in a Bind('F') message, the number of parameters is an 
Int16 according to the docs, but it is treated as unsigned. The maximum 
number of parameters is 65535.

The sentence used to be factually correct, when it didn't mention 
whether they're signed or unsigned. If we want to do better than that, 
we'd need to go through all the mentions of IntN in the docs and 
explicitly say which ones are signed and which ones unsigned. Perhaps 
use Uint16 or Uint32 for the unsigned ones.

-- 
   Heikki Linnakangas
   EnterpriseDB   http://www.enterprisedb.com

---

From: Bruce Momjian <[email-masked]>
Date: Sat, 1 Sep 2012 12:05:24 -0400

On Fri, Aug 17, 2012 at 11:54:54AM +0300, Heikki Linnakangas wrote:
> Actually, in some cases the integers are signed, and in others
> unsigned. For example, in a Bind('F') message, the number of
> parameters is an Int16 according to the docs, but it is treated as
> unsigned. The maximum number of parameters is 65535.
> 
> whether they're signed or unsigned. If we want to do better than
> that, we'd need to go through all the mentions of IntN in the docs
> and explicitly say which ones are signed and which ones unsigned.
> Perhaps use Uint16 or Uint32 for the unsigned ones.

I have reverted the patch until someone is able to correctly designate
the values.  Thanks.