↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

百科 / 协议消息

协议消息

版本比较

前后端消息方向、线上字段与对应版本的协议定义。

当前查看 PostgreSQL 18。

共 73 个条目,PostgreSQL 18 收录 72 个。

  • Bind 前端消息

    Byte1('B') 将该消息标识为 Bind 命令。 Int32 消息内容的长度(以字节为单位),包括其自身。 String 目标 portal 的名称(空字符串选择未命名的 portal)。 String 源预备语句的名称(空字符串选择未命名的预备语句)。 Int16 后续参数格式代码的数量(下文以 C 表示)。可以为零,表示没有参数,或者所有参数都使用默认格式(文本);也可以为一,此时指定的格式代码应用于所有参数;还可以等于实际参数数量。 Int16[ C ] 参数格式代码。目前每个格式…

  • CancelRequest 前端消息

    Int32 消息内容的长度(以字节为单位),包括其自身。 Int32(80877102) 取消请求代码。此值的最高 16 位为 1234 ,最低 16 位为 5678 。(为避免混淆,此代码不能与任何协议版本号相同。) Int32 目标后端的进程 ID。 Byte n 目标后端的密钥。此字段延伸至消息末尾,其范围由长度字段确定。密钥最长为 256 字节。 在协议版本 3.2 之前,密钥始终为 4 字节长。

  • Close 前端消息

    Byte1('C') 将该消息标识为 Close 命令。 Int32 消息内容的长度(以字节为单位),包括其自身。 Byte1 “ S ”表示关闭预备语句;“ P ”表示关闭 portal。 String 要关闭的预备语句或 portal 的名称(空字符串选择未命名的预备语句或 portal)。

  • CopyFail 前端消息

    Byte1('f') 将消息标识为 COPY 失败指示器。 Int32 消息内容的长度(以字节为单位),包括其自身。 String 作为失败原因报告的错误消息。

  • Describe 前端消息

    Byte1('D') 将该消息标识为 Describe 命令。 Int32 消息内容的长度(以字节为单位),包括其自身。 Byte1 ' S ' 表示描述一个预备语句;或者 ' P ' 表示描述一个 portal。 String 要描述的预备语句或 portal 的名称(空字符串选择未命名的预备语句或 portal)。

  • Execute 前端消息

    Byte1('E') 将该消息标识为 Execute 命令。 Int32 消息内容的长度(以字节为单位),包括其自身。 String 要执行的 portal 的名称(空字符串选择未命名的 portal)。 Int32 如果 portal 包含返回行的查询,则这是最多返回的行数(否则忽略此值)。零表示 “ 无限制 ” 。

  • Flush 前端消息

    Byte1('H') 将该消息标识为 Flush 命令。 Int32(4) 消息内容的长度(以字节为单位),包括其自身。

  • FunctionCall 前端消息

    Byte1('F') 标识消息为函数调用。 Int32 消息内容的长度(以字节为单位),包括其自身。 Int32 指定要调用的函数的对象 ID。 Int16 后续参数格式代码的数量(以下用 C 表示)。可以为零,表示没有参数,或所有参数都采用默认格式(文本);也可以为一,表示将指定的格式代码用于所有参数;还可以等于实际参数数量。 Int16[ C ] 参数格式代码。每个目前必须是零(文本)或一(二进制)。 Int16 指定传递给函数的参数数量。 接下来,每个参数都有以下两个字段: Int32 …

  • GSSENCRequest 前端消息

    Int32(8) 消息内容的长度(以字节为单位),包括其自身。 Int32(80877104) GSSAPI 加密请求代码。此值的最高 16 位为 1234 ,最低 16 位为 5680 。(为避免混淆,此代码不得与任何协议版本号相同。)

  • GSSResponse 前端消息

    Byte1('p') 标识消息为 GSSAPI 或 SSPI 响应。请注意,这也用于 SASL 和密码响应消息。可以从上下文中推断出确切的消息类型。 Int32 消息内容的长度(以字节为单位),包括其自身。 Byte n GSSAPI/SSPI 特定的消息数据。

  • Parse 前端消息

    Byte1('P') 将该消息标识为 Parse 命令。 Int32 消息内容的长度(以字节为单位),包括其自身。 String 目标预备语句的名称(空字符串选择未命名的预备语句)。 String 要解析的查询字符串。 Int16 指定的参数数据类型的数量(可以为零)。请注意,这不是查询字符串中可能出现的参数数量的指示,而是前端希望为其预先指定类型的参数数量。 接下来,每个参数都有以下内容: Int32 指定参数数据类型的对象 ID。此处填零等同于不指定类型。

  • PasswordMessage 前端消息

    Byte1('p') 标识消息为密码响应。请注意,这也用于 GSSAPI、SSPI 和 SASL 响应消息。可以从上下文中推断出确切的消息类型。 Int32 消息内容的长度(以字节为单位),包括其自身。 String 密码(如果需要,已加密)。

  • Query 前端消息

    Byte1('Q') 标识消息为简单查询。 Int32 消息内容的长度(以字节为单位),包括其自身。 String 查询字符串本身。

  • SASLInitialResponse 前端消息

    Byte1('p') 标识消息为初始 SASL 响应。请注意,这也用于 GSSAPI、SSPI 和密码响应消息。精确的消息类型是从上下文中推断出来的。 Int32 消息内容的长度(以字节为单位),包括其自身。 String 客户端选择的 SASL 认证机制的名称。 Int32 后续 SASL 机制特有的“客户端初始响应”的长度;如果没有初始响应,则为 -1。 Byte n SASL 机制特定的“初始响应”。

  • SASLResponse 前端消息

    Byte1('p') 标识消息为 SASL 响应。请注意,这也用于 GSSAPI、SSPI 和密码响应消息。可以从上下文中推断出确切的消息类型。 Int32 消息内容的长度(以字节为单位),包括其自身。 Byte n SASL 机制特定的消息数据。

  • SSLRequest 前端消息

    Int32(8) 消息内容的长度(以字节为单位),包括其自身。 Int32(80877103) SSL 请求代码。该值被选择为在最高的 16 位中包含 1234 ,在最低的 16 位中包含 5679 。(为避免混淆,此代码不得与任何协议版本号相同。)

  • StartupMessage 前端消息

    Int32 消息内容的长度(以字节为单位),包括其自身。 Int32(196610) 协议版本号。高 16 位为主版本号(此处描述的协议为 3);低 16 位为次版本号(此处描述的协议为 2)。 协议版本号之后是一个或多个参数名与参数值字符串对。最后一个名称/值对之后必须有一个零字节作为终止符。参数可以按任意顺序出现。其中, user 是必需的,其余均为可选。每个参数按以下方式指定: String 参数名称。目前能够识别的名称如下: user 要连接的数据库用户名称。必填项;没有默认值。 da…

  • Sync 前端消息

    Byte1('S') 将该消息标识为 Sync 命令。 Int32(4) 消息内容的长度(以字节为单位),包括其自身。

  • Terminate 前端消息

    Byte1('X') 标识消息为终止。 Int32(4) 消息内容的长度(以字节为单位),包括其自身。

  • CopyData 双向消息

    Byte1('d') 标识消息为 COPY 数据。 Int32 消息内容的长度(以字节为单位),包括其自身。 Byte n 数据是 COPY 数据流的一部分。来自后端的消息始终对应单个数据行,但来自前端的消息可能会任意划分数据流。

  • CopyDone 双向消息

    Byte1('c') 将消息标识为 COPY 完成指示符。 Int32(4) 消息内容的长度(以字节为单位),包括其自身。

  • AuthenticationCleartextPassword 后端消息

    Byte1('R') 将该消息标识为认证请求。 Int32(8) 消息内容的长度(以字节为单位),包括其自身。 Int32(3) 表示需要明文密码。

  • AuthenticationGSS 后端消息

    Byte1('R') 将该消息标识为认证请求。 Int32(8) 消息内容的长度(以字节为单位),包括其自身。 Int32(7) 表示需要 GSSAPI 认证。

  • AuthenticationGSSContinue 后端消息

    Byte1('R') 将该消息标识为认证请求。 Int32 消息内容的长度(以字节为单位),包括其自身。 Int32(8) 表示此消息包含 GSSAPI 或 SSPI 数据。 Byte n GSSAPI 或 SSPI 认证数据。

  • AuthenticationKerberosV5 后端消息

    Byte1('R') 将该消息标识为认证请求。 Int32(8) 消息内容的长度(以字节为单位),包括其自身。 Int32(2) 表示需要 Kerberos V5 认证。

  • AuthenticationMD5Password 后端消息

    Byte1('R') 将该消息标识为认证请求。 Int32(12) 消息内容的长度(以字节为单位),包括其自身。 Int32(5) 表示需要经过 MD5 加密的密码。 Byte4 加密密码时使用的盐。

  • AuthenticationOk 后端消息

    Byte1('R') 将该消息标识为认证请求。 Int32(8) 消息内容的长度(以字节为单位),包括其自身。 Int32(0) 表示认证成功。

  • AuthenticationSASL 后端消息

    Byte1('R') 将该消息标识为认证请求。 Int32 消息内容的长度(以字节为单位),包括其自身。 Int32(10) 表示需要 SASL 认证。 消息体是按服务器偏好顺序排列的 SASL 认证机制列表。在最后一个认证机制名称之后,必须有一个零字节作为终止符。每个机制包含以下内容: String SASL 认证机制的名称。

  • AuthenticationSASLContinue 后端消息

    Byte1('R') 将该消息标识为认证请求。 Int32 消息内容的长度(以字节为单位),包括其自身。 Int32(11) 表示此消息包含 SASL 挑战。 Byte n SASL 数据,具体内容取决于所使用的 SASL 机制。

  • AuthenticationSASLFinal 后端消息

    Byte1('R') 将该消息标识为认证请求。 Int32 消息内容的长度(以字节为单位),包括其自身。 Int32(12) 表示 SASL 认证已完成。 Byte n SASL 结果的“附加数据”,具体内容取决于所使用的 SASL 机制。

  • AuthenticationSCMCredential 后端消息 PG 18 未收录

    所选版本未收录此条目。

  • AuthenticationSSPI 后端消息

    Byte1('R') 将该消息标识为认证请求。 Int32(8) 消息内容的长度(以字节为单位),包括其自身。 Int32(9) 表示需要 SSPI 认证。

  • BackendKeyData 后端消息

    Byte1('K') 将此消息标识为取消请求密钥数据。如果前端希望以后能够发送 CancelRequest 消息,就必须保存这些值。 Int32 消息内容的长度(以字节为单位),包括其自身。 Int32 此后端的进程 ID。 Byte n 此后端的密钥。此字段延伸至消息末尾,其范围由长度字段确定。 密钥长度最小为 4 字节,最大为 256 字节。 PostgreSQL 服务器只发送最长 32 字节的密钥,但更大的长度上限允许未来的服务器版本、连接池和其他中间件使用更长的密钥。一种可能的用途是在…

  • BindComplete 后端消息

    Byte1('2') 将该消息标识为 Bind 完成指示。 Int32(4) 消息内容的长度(以字节为单位),包括其自身。

  • CloseComplete 后端消息

    Byte1('3') 将该消息标识为 Close 完成指示。 Int32(4) 消息内容的长度(以字节为单位),包括其自身。

  • CommandComplete 后端消息

    Byte1('C') 将该消息标识为命令完成响应。 Int32 消息内容的长度(以字节为单位),包括其自身。 String 命令标签。通常是一个单词,用来标识已完成的 SQL 命令。 对于 INSERT 命令,标签是 INSERT oid rows ,其中 rows 是插入的行数。如果 rows 为 1 且目标表具有 OIDs,则 oid 曾经是插入行的对象 ID,但不再支持 OIDs 系统列;因此 oid 总是 0。 对于 DELETE 命令,标签是 DELETE rows ,其中 rows…

  • CopyBothResponse 后端消息

    Byte1('W') 将该消息标识为开始双向 COPY 的响应。此消息仅用于流复制。 Int32 消息内容的长度(以字节为单位),包括其自身。 Int8 0 表示整体 COPY 格式是文本的(行由换行符分隔,列由分隔符分隔等)。1 表示整体复制格式是二进制的(类似于 DataRow 格式)。更多信息请参见 COPY 。 Int16 要复制的数据中的列数(以下用 N 表示)。 Int16[ N ] 各列使用的格式代码。目前每个代码必须为零(文本)或一(二进制)。如果整体复制格式为文本,则所有代码…

  • CopyInResponse 后端消息

    Byte1('G') 将该消息标识为开始 COPY 输入的响应。前端此时必须发送 COPY 输入数据(如果尚未准备好,应发送 CopyFail 消息)。 Int32 消息内容的长度(以字节为单位),包括其自身。 Int8 0 表示整体 COPY 格式是文本的(行由换行符分隔,列由分隔符分隔等)。1 表示整体复制格式是二进制的(类似于 DataRow 格式)。更多信息请参见 COPY 。 Int16 要复制的数据中的列数(以下用 N 表示)。 Int16[ N ] 各列使用的格式代码。目前每个代…

  • CopyOutResponse 后端消息

    Byte1('H') 将该消息标识为开始 COPY 输出的响应。此消息之后会发送 COPY 输出数据。 Int32 消息内容的长度(以字节为单位),包括其自身。 Int8 0 表示整体 COPY 格式是文本的(行由换行符分隔,列由分隔符分隔等)。1 表示整体复制格式是二进制的(类似于 DataRow 格式)。更多信息请参见 COPY 。 Int16 要复制的数据中的列数(以下用 N 表示)。 Int16[ N ] 各列使用的格式代码。目前每个代码必须为零(文本)或一(二进制)。如果整体复制格式…

  • DataRow 后端消息

    Byte1('D') 标识消息为数据行。 Int32 消息内容的长度(以字节为单位),包括其自身。 Int16 后面跟着的列值的数量(可能为零)。 接下来,每列都有以下两个字段: Int32 列值的长度,以字节为单位(不包括此长度字段本身)。可以为零。特殊值 -1 表示 NULL 列值。为 NULL 时,后面不再有值的字节。 Byte n 列的值,格式由相关的格式代码指示。 n 是上述长度。

  • EmptyQueryResponse 后端消息

    Byte1('I') 标识消息为对空查询字符串的响应。(此消息替代 CommandComplete。) Int32(4) 消息内容的长度(以字节为单位),包括其自身。

  • ErrorResponse 后端消息

    Byte1('E') 将消息标识为错误。 Int32 消息内容的长度(以字节为单位),包括其自身。 消息体由一个或多个带标识的字段组成,最后以一个零字节终止。字段可以按任意顺序出现。每个字段包含以下内容: Byte1 一个用于标识字段类型的代码;如果为零,则这是消息终止符,后面没有字符串。目前定义的字段类型列在 第 54.8 节 中。由于将来可能会添加更多的字段类型,前端应该静默地忽略未识别类型的字段。 String 字段值。

  • FunctionCallResponse 后端消息

    Byte1('V') 标识消息为函数调用结果。 Int32 消息内容的长度(以字节为单位),包括其自身。 Int32 函数结果值的长度,以字节为单位(不包括此长度字段本身)。可以为零。特殊值 -1 表示 NULL 函数结果。为 NULL 时,后面不再有值的字节。 Byte n 函数结果的值,格式由相关的格式代码指示。 n 是上述长度。

  • NegotiateProtocolVersion 后端消息

    Byte1('v') 标识消息为协议版本协商消息。 Int32 消息内容的长度(以字节为单位),包括其自身。 Int32 对于客户端请求的协议主版本,服务器所支持的最新协议次版本。 Int32 服务器无法识别的协议选项数量。 接下来,对于服务器无法识别的每个协议选项,都有以下内容: String 选项名称。

  • NoData 后端消息

    Byte1('n') 将消息标识为无数据指示器。 Int32(4) 消息内容的长度(以字节为单位),包括其自身。

  • NoticeResponse 后端消息

    Byte1('N') 将消息标识为通知。 Int32 消息内容的长度(以字节为单位),包括其自身。 消息体由一个或多个带标识的字段组成,最后以一个零字节终止。字段可以按任意顺序出现。每个字段包含以下内容: Byte1 一个用于标识字段类型的代码;如果为零,则这是消息终止符,后面没有字符串。目前定义的字段类型列在 第 54.8 节 中。由于将来可能会添加更多的字段类型,前端应该静默地忽略未识别类型的字段。 String 字段值。

  • NotificationResponse 后端消息

    Byte1('A') 标识消息为通知响应。 Int32 消息内容的长度(以字节为单位),包括其自身。 Int32 发出通知的后端进程的进程 ID。 String 发出该通知的通道名称。 String 通知进程传来的 “ 有效载荷 ” 字符串。

  • ParameterDescription 后端消息

    Byte1('t') 标识消息为参数描述。 Int32 消息内容的长度(以字节为单位),包括其自身。 Int16 语句使用的参数数量(可以为零)。 接下来,每个参数都有以下内容: Int32 指定参数数据类型的对象 ID。

  • ParameterStatus 后端消息

    Byte1('S') 标识消息为运行时参数状态报告。 Int32 消息内容的长度(以字节为单位),包括其自身。 String 所报告的运行时参数的名称。 String 参数的当前值。

  • ParseComplete 后端消息

    Byte1('1') 将该消息标识为 Parse 完成指示。 Int32(4) 消息内容的长度(以字节为单位),包括其自身。

  • PortalSuspended 后端消息

    Byte1('s') 将该消息标识为 portal 挂起指示。注意,仅当达到 Execute 消息指定的行数限制时,才会出现此消息。 Int32(4) 消息内容的长度(以字节为单位),包括其自身。

  • ReadyForQuery 后端消息

    Byte1('Z') 标识消息类型。ReadyForQuery 在后端准备好进行新的查询周期时发送。 Int32(5) 消息内容的长度(以字节为单位),包括其自身。 Byte1 当前后端事务状态指示器。可能的值为' I ',如果空闲(不在事务块中);' T ',如果在事务块中;或' E ',如果在失败的事务块中(查询将被拒绝,直到块结束)。

  • RowDescription 后端消息

    Byte1('T') 标识消息为行描述。 Int32 消息内容的长度(以字节为单位),包括其自身。 Int16 指定一行中的字段数量(可以为零)。 接下来,每个字段都有以下内容: String 字段名称。 Int32 如果能够确定该字段是某个特定表的列,则为该表的对象 ID;否则为零。 Int16 如果能够确定该字段是某个特定表的列,则为该列的属性编号;否则为零。 Int32 字段数据类型的对象 ID。 Int16 数据类型大小(参见 pg_type.typlen )。注意,负值表示可变宽度类…

  • Begin (logical replication) 逻辑复制格式

    Byte1('B') 将该消息标识为 Begin 消息。 Int64 (XLogRecPtr) 事务的最终 LSN。 Int64 (TimestampTz) 事务的提交时间戳。其值为自 PostgreSQL 纪元(2000-01-01)起经过的微秒数。 Int32 (TransactionId) 事务的 Xid。

  • Begin Prepare (logical replication) 逻辑复制格式

    Byte1('b') 将该消息标识为 Begin Prepare 消息。 Int64 (XLogRecPtr) PREPARE 的 LSN。 Int64 (XLogRecPtr) 预备事务的结束 LSN。 Int64 (TimestampTz) 事务进入预备状态的时间戳。其值为自 PostgreSQL 纪元(2000-01-01)起经过的微秒数。 Int32 (TransactionId) 事务的 Xid。 String 预备事务的用户定义 GID。

  • Commit (logical replication) 逻辑复制格式

    Byte1('C') 将该消息标识为 Commit 消息。 Int8(0) 标志;目前未使用。 Int64 (XLogRecPtr) 提交的 LSN。 Int64 (XLogRecPtr) 事务的结束 LSN。 Int64 (TimestampTz) 事务的提交时间戳。其值为自 PostgreSQL 纪元(2000-01-01)起经过的微秒数。

  • Commit Prepared (logical replication) 逻辑复制格式

    Byte1('K') 将该消息标识为 Commit Prepared 消息。 Int8(0) 标志;目前未使用。 Int64 (XLogRecPtr) 预备事务提交的 LSN。 Int64 (XLogRecPtr) 预备事务提交的结束 LSN。 Int64 (TimestampTz) 事务的提交时间戳。其值为自 PostgreSQL 纪元(2000-01-01)起经过的微秒数。 Int32 (TransactionId) 事务的 Xid。 String 预备事务的用户定义 GID。

  • Delete (logical replication) 逻辑复制格式

    Byte1('D') 将该消息标识为 Delete 消息。 Int32 (TransactionId) 事务的 Xid(仅在流式传输的事务中出现)。此字段从协议版本 2 起可用。 Int32 (Oid) 关系的 OID,与 Relation 消息中的 ID 对应。 Byte1('K') 将后续 TupleData 子消息标识为键。如果发生删除的表使用索引作为 REPLICA IDENTITY,则出现此字段。 Byte1('O') 将后续 TupleData 消息标识为旧元组。如果发生删除的表将…

  • Insert (logical replication) 逻辑复制格式

    Byte1('I') 将该消息标识为 Insert 消息。 Int32 (TransactionId) 事务的 Xid(仅在流式传输的事务中出现)。此字段从协议版本 2 起可用。 Int32 (Oid) 关系的 OID,与 Relation 消息中的 ID 对应。 Byte1('N') 将后续 TupleData 消息标识为新元组。 TupleData 表示新元组内容的 TupleData 消息部分。

  • Message (logical replication) 逻辑复制格式

    Byte1('M') 将消息标识为逻辑解码消息。 Int32 (TransactionId) 事务的 Xid(仅在流式传输的事务中出现)。此字段从协议版本 2 起可用。 Int8 标志:0 表示没有标志;1 表示该逻辑解码消息是事务性的。 Int64 (XLogRecPtr) 逻辑解码消息的 LSN。 String 逻辑解码消息的前缀。 Int32 内容的长度。 Byte n 逻辑解码消息的内容。

  • Origin (logical replication) 逻辑复制格式

    Byte1('O') 将该消息标识为 Origin 消息。 Int64 (XLogRecPtr) 源服务器上提交的 LSN。 String 复制源的名称。 注意,单个事务中可能有多条 Origin 消息。

  • Prepare (logical replication) 逻辑复制格式

    Byte1('P') 将该消息标识为 Prepare 消息。 Int8(0) 标志;目前未使用。 Int64 (XLogRecPtr) PREPARE 的 LSN。 Int64 (XLogRecPtr) 预备事务的结束 LSN。 Int64 (TimestampTz) 事务进入预备状态的时间戳。其值为自 PostgreSQL 纪元(2000-01-01)起经过的微秒数。 Int32 (TransactionId) 事务的 Xid。 String 预备事务的用户定义 GID。

  • Relation (logical replication) 逻辑复制格式

    Byte1('R') 将该消息标识为 Relation 消息。 Int32 (TransactionId) 事务的 Xid(仅在流式传输的事务中出现)。此字段从协议版本 2 起可用。 Int32 (Oid) 关系的 OID。 String 命名空间(对于 pg_catalog 为空字符串)。 String 关系名称。 Int8 关系的复制标识设置(与 pg_class 中的 relreplident 相同)。 Int16 列数。 接下来,发布中包含的每一列都会出现以下消息部分: Int8 列的…

  • Rollback Prepared (logical replication) 逻辑复制格式

    Byte1('r') 将该消息标识为 Rollback Prepared 消息。 Int8(0) 标志;目前未使用。 Int64 (XLogRecPtr) 预备事务的结束 LSN。 Int64 (XLogRecPtr) 回滚预备事务的结束 LSN。 Int64 (TimestampTz) 事务进入预备状态的时间戳。其值为自 PostgreSQL 纪元(2000-01-01)起经过的微秒数。 Int64 (TimestampTz) 事务的回滚时间戳。该值是自 PostgreSQL 纪元(2000…

  • Stream Abort (logical replication) 逻辑复制格式

    Byte1('A') 将该消息标识为 Stream Abort 消息。 Int32 (TransactionId) 事务的 Xid。 Int32 (TransactionId) 子事务的 Xid(对于顶层事务,将与事务的 xid 相同)。 Int64 (XLogRecPtr) 中止操作的 LSN,仅当 streaming 设置为 parallel 时出现。此字段从协议版本 4 起可用。 Int64 (TimestampTz) 事务的中止时间戳,仅当 streaming 设置为 parallel…

  • Stream Commit (logical replication) 逻辑复制格式

    Byte1('c') 将该消息标识为 Stream Commit 消息。 Int32 (TransactionId) 事务的 Xid。 Int8(0) 标志;目前未使用。 Int64 (XLogRecPtr) 提交的 LSN。 Int64 (XLogRecPtr) 事务的结束 LSN。 Int64 (TimestampTz) 事务的提交时间戳。其值为自 PostgreSQL 纪元(2000-01-01)起经过的微秒数。

  • Stream Prepare (logical replication) 逻辑复制格式

    Byte1('p') 将该消息标识为 Stream Prepare 消息。 Int8(0) 标志;目前未使用。 Int64 (XLogRecPtr) PREPARE 的 LSN。 Int64 (XLogRecPtr) 预备事务的结束 LSN。 Int64 (TimestampTz) 事务进入预备状态的时间戳。其值为自 PostgreSQL 纪元(2000-01-01)起经过的微秒数。 Int32 (TransactionId) 事务的 Xid。 String 预备事务的用户定义 GID。

  • Stream Start (logical replication) 逻辑复制格式

    Byte1('S') 将该消息标识为 Stream Start 消息。 Int32 (TransactionId) 事务的 Xid。 Int8 值为 1 表示这是该 XID 的第一个流段,值为 0 表示其他任何流段。

  • Stream Stop (logical replication) 逻辑复制格式

    Byte1('E') 将该消息标识为 Stream Stop 消息。

  • Truncate (logical replication) 逻辑复制格式

    Byte1('T') 将该消息标识为 Truncate 消息。 Int32 (TransactionId) 事务的 Xid(仅在流式传输的事务中出现)。此字段从协议版本 2 起可用。 Int32 关系数量 Int8 选项位用于 TRUNCATE 命令:1 表示 CASCADE ,2 表示 RESTART IDENTITY Int32 (Oid) 关系的 OID,与 Relation 消息中的 ID 对应。每个关系都重复出现此字段。

  • TupleData (logical replication) 逻辑复制格式

    表示新元组内容的 TupleData 消息部分。

  • Type (logical replication) 逻辑复制格式

    Byte1('Y') 将该消息标识为 Type 消息。 Int32 (TransactionId) 事务的 Xid(仅在流式传输的事务中出现)。此字段从协议版本 2 起可用。 Int32 (Oid) 数据类型的 OID。 String 命名空间(对于 pg_catalog 为空字符串)。 String 数据类型的名称。

  • Update (logical replication) 逻辑复制格式

    Byte1('U') 将该消息标识为 Update 消息。 Int32 (TransactionId) 事务的 Xid(仅在流式传输的事务中出现)。此字段从协议版本 2 起可用。 Int32 (Oid) 关系的 OID,与 Relation 消息中的 ID 对应。 Byte1('K') 将后续 TupleData 子消息标识为键。此字段可选,仅在更新更改了属于 REPLICA IDENTITY 索引的某一列或多列的数据时出现。 Byte1('O') 将后续 TupleData 子消息标识为旧元…

已收录首次收录接口或属性变化不再收录

版本方格表示采样构建中的收录情况,不代表实际引入时间。点击方格可查看对应版本的定义和来源。

PostgreSQL 18 的变化 · 导出 JSON

阅读说明

前后端协议消息与逻辑复制载荷分别标识,定义保留条件和重复字段。字段顺序不等于字节偏移;交互章节说明合法消息交换。