↑↓ select ↵ open ⌫ change scope Open full search

PG.CENTER connects PostgreSQL documentation, reference, and ecosystem knowledge. Maintained by Pigsty.

Wiki / Protocol Messages / Frontend messages

CancelRequest

CancelRequest is a frontend protocol message. Length of message contents in bytes, including self.

Reading PostgreSQL 18.6.

Description

CancelRequest is a frontend protocol message. Length of message contents in bytes, including self.

Direction
Frontend → backend
First wire field
Int32
Field entries
4
Documented flow contexts
Canceling Requests in Progress; SSL Session Encryption; GSSAPI Session Encryption

Usage

CancelRequest (F)

Framing and repetition

The complete definition below retains repetition, counts and conditional fields. A numbered table row is a documented field definition, not a fixed byte offset. Integer encodings and flow rules follow the same-version protocol chapter.

Wire fields in documented order

PositionFormatMeaning
1Int32Length of message contents in bytes, including self.
2Int32(80877102)The cancel request code. The value is chosen to contain 1234 in the most significant 16 bits, and 5678 in the least significant 16 bits. (To avoid confusion, this code must not be the same as any protocol version number.)
3Int32The process ID of the target backend.
4Byte nThe secret key for the target backend. This field extends to the end of the message, indicated by the length field. The maximum key length is 256 bytes.

Manual definition

Int32

Length of message contents in bytes, including self.

Int32(80877102)

The cancel request code. The value is chosen to contain 1234 in the most significant 16 bits, and 5678 in the least significant 16 bits. (To avoid confusion, this code must not be the same as any protocol version number.)

Int32

The process ID of the target backend.

Byten

The secret key for the target backend. This field extends to the end of the message, indicated by the length field. The maximum key length is 256 bytes.

Before protocol version 3.2, the secret key was always 4 bytes long.

Related entries

Documentation and source

Source build
Version
18.6
Build
https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2
Source fingerprint
555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f

Compare versions

PostgreSQL 17 → 18: changed.

--- PostgreSQL 17
+++ PostgreSQL 18
@@ -3,7 +3,7 @@
   "fields": [
     {
       "description": "Length of message contents in bytes, including self.",
-      "format": "Int32(16)"
+      "format": "Int32"
     },
     {
       "description": "The cancel request code. The value is chosen to contain 1234 in the most significant 16 bits, and 5678 in the least significant 16 bits. (To avoid confusion, this code must not be the same as any protocol version number.)",
@@ -14,8 +14,8 @@
       "format": "Int32"
     },
     {
-      "description": "The secret key for the target backend.",
-      "format": "Int32"
+      "description": "The secret key for the target backend. This field extends to the end of the message, indicated by the length field. The maximum key length is 256 bytes.",
+      "format": "Byte n"
     }
   ]
 }

Compares recorded interfaces and attributes. Source fingerprints and build metadata are excluded; an absent sample is not proof of the introduction or removal release.

Related entries

Export JSON · Back to Protocol Messages · Recorded in PostgreSQL 10 through 20; the first sample is not necessarily its introduction.