PgPedia 周刊,2024-01-07

提交节 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 错误地省略限定子句的问题
  • 43b46aae (2024-01-05):清理 plpgsql 的 %TYPE 解析中的一些边缘情况。
  • 9cd0d77d (2024-01-05):修复临时关系扩展期间本地缓冲区状态损坏
  • 9391f715 (2024-01-04):教 estimate_array_length() 在可用时使用统计信息。
  • 14dd0f27 (2024-01-04):添加用于循环遍历 List 而无需 ListCell 的宏。
  • 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):在新添加的 TAP 测试中使 Perl 警告成为致命错误
  • 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 条目

已添加以下新条目

更新

以下文章已更新,包含更多信息或更正

已添加以下指向外部文章的链接

最后...

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


发表评论
Name:
*
E-Mail:
address will not be displayed
Homepage:
Comment: