Redrock Postgres 文档
主页 切换暗/亮/自动模式 切换暗/亮/自动模式 切换暗/亮/自动模式 返回首页

54000 超出程序限制

错误: 事务中不能有超过 2^32-1 个命令

1个事务中不能有超过 4294967295 个命令。此处的命令是指数据库服务端实际执行的SQL语句,也包括了存储过程内部执行的SQL语句,只要这些SQL语句会修改数据库中的数据。

错误: 事务中不能有超过 2^32-1 个语句

1个事务中不能有超过 4294967295 个语句。此处的语句是指客户端发送给数据库服务端的SQL语句。

错误: 事务中不能有超过 2^32-1 个子事务

1个事务中不能有超过 4294967295 个子事务。

在存储过程中,你可以使用一个带有EXCEPTION子句的BEGIN块俘获错误并且从中恢复。你也可以在事务中定义保存点,在之后将事务中执行的工作回滚到声明的保存点位置。在PostgreSQL中,这些能力都是使用子事务来实现的。

错误: 撤消块序列号不能超过 2^16-1

事务中的撤消块序列号不能超过 65535。

在 Redrock Postgres 中,撤消记录位置(pg_uba)是一个用来指向撤消记录位置的指针,它由一个块号、块序列号和一个项标识符的索引组成。pg_uba按事务中发生的事件排序,以满足在事务ACID 属性的需要。

通常情况下,数据库事务在回滚段中是从低往高的方向分配撤消块的,撤消块号会顺序递增。当撤消块的分配到达回滚段的末尾后,会尝试重新从回滚段的起始块进行分配,当撤销块号变小时,会递增块序列号以保证事务中撤消记录位置的有序性。

错误: 超出两阶段状态文件最大长度

两阶段状态数据超过了 1GB。

在准备提交一个两阶段事务的时候,Postgres需要将事务相关的重量级锁信息,和表的访问统计信息持久化到两阶段状态文件。在 Redrock Postgres 中,两阶段状态数据存放在事务关联的回滚段中。