PostgreSQL 15 特性 - MERGE INTO 语法
MERGE INTO
语法很早之前就在 Oracle 数据库中实现了,最近 PostgreSQL 也实现了相应的语法,该语法符合 SQL2016 标准,与 Oracle 的 MERGE INTO
还是有一定区别的。本文简要介绍一下 PostgreSQL 中的 MERGE INTO
语法。
MERGE INTO
语法很早之前就在 Oracle 数据库中实现了,最近 PostgreSQL 也实现了相应的语法,该语法符合 SQL2016 标准,与 Oracle 的 MERGE INTO
还是有一定区别的。本文简要介绍一下 PostgreSQL 中的 MERGE INTO
语法。
PostgreSQL 主分支中针对 pg_waldump 新增了四类过滤选项,分别为 RelFileNode
、BlockNumber
、ForkNum
和 FPW
。本文将简要介绍一下这四个过滤选项。
最近在邮件列表中看到一个关于聚集列的数据类型修改导致的异常问题 BUG #17409。本文简要记录一下分析过程以及解决方案。目前该问题已经被修复,在 14.1 和 14.2 版本中应该可以重现。
commit 641f3dffcdf1c7378cfb94c98b6642793181d6db
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: Fri Mar 11 13:47:26 2022 -0500
Restore the previous semantics of get_constraint_index().
Commit 8b069ef5d changed this function to look at pg_constraint.conindid
rather than searching pg_depend. That was a good performance improvement,
but it failed to preserve the exact semantics. The old code would only
return an index that was "owned by" (internally dependent on) the
specified constraint, whereas the new code will also return indexes that
are just referenced by foreign key constraints. This confuses ALTER
TABLE, which was implicitly expecting the previous semantics, into
failing with errors like
ERROR: relation 146621 has multiple clustered indexes
or
ERROR: "pk_attbl" is not an index for table "atref"
We can fix this without reverting the performance improvement by adding
a contype check in get_constraint_index(). Another way could be to
make ALTER TABLE check it, but I'm worried that extension code could
also have subtle dependencies on the old semantics.
Tom Lane and Japin Li, per bug #17409 from Holly Roberts.
Back-patch to v14 where the error crept in.
Discussion: https://postgr.es/m/17409-52871dda8b5741cb@postgresql.org
今天灿灿(微信公众号:PostgreSQL 学徒)发来一个问题,说是日志中 buffer usage
出现了负数,如下所示。
最近在做申威平台的兼容时发现一个关于编译器优化的 BUG。第一次遇到编译器优化的问题,因此在这里对其进行简要的记录。
PostgreSQL 提供了自定义参数的功能,您可以使用 SET
或 set_config()
函数来定义参数,本文介绍一下在 PG14(14.1 和 14.2)中引入的关于自定义参数标识符的的问题 BUG #17415。
最近在分析 bug 的时候接触到了 git bisect
这个命令,虽然之前也知道这个命令,但是由于平时用的不多所以没有深入的研究,对它的使用方法也不是很熟悉。其实这个命令使用起来还是非常简单的,本文结合实际情况简要介绍一下 git bisect
的使用方法。