重新归纳标题为:版本 9.6:E.9.
删除废弃的
heap_formtuple
/heap_modifytuple
/heap_deformtuple
函数 (Peter Geoghegan)
添加宏使AllocSetContextCreate()
调用更简单和更安全 (Tom Lane)
为了支持使用新的宏ALLOCSET_DEFAULT_SIZES
,ALLOCSET_SMALL_SIZES
或ALLOCSET_START_SMALL_SIZES
中的一个,
写出存储器上下文的各个大小调整参数现在已被弃用。然而,现有代码继续工作。
无条件地在头文件中使用static inline
函数 (Andres Freund)
这可能导致非常旧的编译器警告和/或浪费代码空间,但标志性的改进似乎值得。
改进TAP测试架构 (Michael Paquier, Craig Ringer, Álvaro Herrera, Stephen Frost)
值得注意的是,现在可以使用此架构测试恢复方案。
使trace_lwlocks
按名称标识各个锁
(Robert Haas)
改进psql的tab完成代码架构 (Thomas Munro, Michael Paquier)
Tab完成规则现在比较容易编写,并且更加紧凑。
将pg_shseclabel
系统目录命名为缓存,以便在连接认证期间可以访问
(Adam Brightwell)
核心代码不使用此目录进行身份验证,但扩展程序可能需要查阅。
重新构造索引访问方法API 以在C级别隐藏其大部分 (Alexander Korotkov, Andrew Gierth)
这种变化使索引AM API现代化,
看起来更像我们为外部数据包装器和表样本处理器采用的设计。
这简化了C代码,使得在可安装扩展中定义索引访问方法更加实用。
结果是pg_am
系统目录的大多数列都消失了。添加了新的
检查函数,
以允许SQL查询确定以前可从pg_am
发现的索引AM属性。
添加pg_init_privs 系统目录以保留initdb创建和扩展创建的对象的原始权限 (Stephen Frost)
这种架构允许pg_dump 转储安装可能在附加到系统对象的权限中进行的更改。以前, 这样的更改将在转储和重新加载中丢失,但现在它们被保留。
更改扩展分配自定义LWLocks
的方式
(Amit Kapila, Robert Haas)
RequestAddinLWLocks()
函数被删除,并被
RequestNamedLWLockTranche()
替换。
这允许更好地识别自定义LWLocks
,并且不太容易出错。
改进隔离测试器以允许多个会话并发等待,从而允许测试死锁场景 (Robert Haas)
引入可扩展节点类型 (KaiGai Kohei)
此更改允许FDW或自定义扫描提供程序以比先前更方便的格式将数据存储在计划树中。
通过生成和比较Paths
,替换大量的自组织逻辑,
使规划器处理后扫描/连接查询步骤 (Tom Lane)
这种改变目前只提供边缘的用户可见的改进,但它使未来的工作在很多计划上的改进, 使用旧的代码结构是不切实际的。
支持部分聚合 (David Rowley, Simon Riggs)
该改变允许将聚合函数的计算分割成单独的部分, 例如使得并行工作进程可以在计算聚合上协作。在将来, 它可能允许跨本地和远程数据的聚合部分地发生在远程端。
添加通用命令进度报告工具 (Vinayak Pokale, Rahila Syed, Amit Langote, Robert Haas)
分理出psql的flex lexer, 使其可以被其他客户端程序使用 (Tom Lane, Kyotaro Horiguchi)
这消除了需要能够很好地解析SQL命令以识别命令边界的程序的代码重复。 以完全通用性做这个比人们所想到的更痛苦,到目前为止, 只有psql真正得到了我们支持的客户端程序中的权利。
创建了一个新的源代码子目录src/fe_utils/
来保存在我们的客户端程序间共享的代码。
以前这种共享是通过在构建时通过符号链接或复制源文件来完成的,
这是丑陋的,并且需要重复编译。
引入WaitEventSet
API
以允许有效地等待通常不会从一个等待改变到下一个等待的事件集
(Andres Freund, Amit Kapila)
添加用于写入WAL记录的通用接口 (Alexander Korotkov, Petr Jelínek, Markus Nullmeier)
此更改允许扩展使用标准布局写入WAL记录以更改页面。 需要重放WAL而不访问扩展的问题是通过普通重放代码来解决的。 这允许扩展实现,例如,索引访问方法,并为它们提供WAL支持。
支持通用WAL消息进行逻辑解码 (Petr Jelínek, Andres Freund)
此功能允许扩展插入数据到WAL流, 可以由逻辑解码插件读取,但不连接到物理数据恢复。
允许SP-GiST操作符类在索引递减时存储任意的“遍历值” (Alexander Lebedev, Teodor Sigaev)
这有点像“重建值”,但它可以是任何任意数据块, 不一定是与索引列相同的数据类型。
为ereport()
引入一个LOG_SERVER_ONLY
消息级别
(David Steele)
这个级别像LOG
一样,除了消息从不发送到客户端。它用于审计和类似应用。
提供一个Makefile
目标来构建所有生成的头 (Michael Paquier, Tom Lane)
现在可以调用submake-generated-headers
来确保生成的后端头文件是最新的。这在可能构建为“独立”
的子目录中很有用。
支持OpenSSL 1.1.0 (Andreas Karlsson, Heikki Linnakangas)
推荐阅读