PgPedia 周报,2024年1月7日

Commitfest 46 正在进行中;以下是为方便您总结的用户可见更改

如下所示,始终列出感兴趣的提交

ALTER TABLE ... ALTER COLUMN ... SET EXPRESSION AS

通过提交5d06e99a,现在可以更改生成列的表达式

postgres=# CREATE TABLE multiply (
             original_value   INT NOT NULL,
             multiplied_value INT NOT NULL GENERATED ALWAYS AS (original_value * 2) STORED
           );
CREATE TABLE

postgres=# INSERT INTO multiply VALUES (generate_series(1,5));
INSERT 0 5

postgres=# SELECT * FROM multiply;
 original_value | multiplied_value 
----------------+------------------
              1 |                2
              2 |                4
              3 |                6
              4 |                8
              5 |               10
(5 rows)

postgres=# ALTER TABLE multiply ALTER COLUMN multiplied_value SET EXPRESSION AS (original_value * 3);
ALTER TABLE

postgres=# SELECT * FROM multiply;
 original_value | multiplied_value 
----------------+------------------
              1 |                3
              2 |                6
              3 |                9
              4 |               12
              5 |               15
(5 rows)

pg_replication_slots 中的“conflict_reason”列

conflict_reason用一个枚举替换布尔列conflicting(在PostgreSQL 16中添加),该枚举包含以下三个值之一

  • rows_removed
  • wal_level_insufficient
  • wal_removed

这提供了关于逻辑复制槽失效原因的更多上下文。

conflict_reason对于尚未失效的逻辑复制槽和物理复制槽,始终为NULL

PL/pgSQL:%TYPE 和 %ROWTYPE 后跟数组修饰

通过提交5e8674dc,现在可以将变量定义为%TYPE%ROWTYPE的数组

postgres=# DO $$
           DECLARE
             v1 INT;
             v2 varchar;
             a1 v1%TYPE[];
             a2 v2%TYPE[];
           BEGIN
             v1 := 94;
             v2 := 'Hello';
             a1 := ARRAY[v1,v1];
             a2 := ARRAY[v2,v2];
             RAISE NOTICE '% %', a1, a2;
           END;
           $$;
NOTICE:  {94,94} {Hello,Hello}
DO

PostgreSQL 感兴趣的提交

  • 9034a2d5 (2024-01-07): 修复 intarray 的 g_int_decompress() 中的整数溢出问题。
  • 2a67b5a6 (2024-01-07): 修复并行哈希连接中过大的内存分配
  • 5ef34a8f (2024-01-06): 修复 SJE 错误地省略 qual 子句的问题
  • 43b46aae (2024-01-05): 清理 plpgsql 的 %TYPE 解析中的一些边缘情况。
  • 9cd0d77d (2024-01-05): 修复在扩展临时关系期间本地缓冲区状态损坏的问题
  • 9391f715 (2024-01-04): 教 estimate_array_length() 在可用时使用统计信息。
  • 14dd0f27 (2024-01-04): 添加用于在没有 ListCell 的情况下遍历 List 的宏。
  • 5e8674dc (2024-01-04): 在 plpgsql 中,允许 %TYPE 和 %ROWTYPE 后跟数组修饰。
  • 5d06e99a (2024-01-04): ALTER TABLE 命令来更改生成表达式
  • ae69c4fc (2024-01-04): 修复在 DISTINCT 聚合中使用不正确的 TupleTableSlot 回溯 ~ 16
  • 007693f2 (2024-01-04): pg_replication_slots中跟踪 conflict_reason。
  • aaf09c59 (2024-01-03): 避免在 auth.c 中屏蔽 EOF(未提供密码)条件。 回溯 ~ 12
  • 59fd390d (2024-01-03): 第二次尝试组织 jsonpath 运算符和方法
  • 0958f8f6 (2024-01-03): 回滚“重新组织 jsonpath 运算符和方法”
  • dffde5bf (2024-01-03): 修复 PrepareForIncrementalBackup 中的缺陷。
  • 8ce5aef2 (2024-01-03): 使 Perl 警告在新添加的 TAP 测试中变为致命错误
  • 283a95da (2024-01-03): 重新组织 jsonpath 运算符和方法
  • c1b9e1e5 (2024-01-03): 添加 numeric_int8_opt_error() 以选择性地抑制错误
  • d4e66a39 (2024-01-03): 重构:分离函数以查找依赖于列的所有对象
  • 4b66d7b4 (2024-01-03): 从 TAP 测试中删除不必要的 PGDATABASE 设置
  • ae6bc393 (2024-01-02): 搜索路径缓存代码的细微修复。
  • a7928a57 (2024-01-02): 在 SJE 期间替换一些缺失字段中的 relid
  • 9a17be1e (2024-01-01): 允许升级保留完整订阅的状态。
  • cea89c93 (2024-01-01): 将 AT_PASS_* 宏转换为枚举

请注意,提交按照它们在提交日志中出现的顺序显示,这可能无法反映单个提交的创建日期。

请参阅PostgreSQL GIT 提交日志以获取完整的提交列表。

新的 PgPedia 条目

已添加以下新条目

更新

以下文章已更新,其中包含其他信息或更正

已添加以下外部链接

最后…

如果缺少任何内容,或者您有一些(建设性的)想法,请留下一些反馈和/或买杯咖啡


发表评论
姓名
*
电子邮件
地址不会显示
主页
注释