© 2025 NTT DATA Group Corporation
© 2025 NTT DATA Group Corporation
PostgreSQLのgitレポジトリから見える2024年の開発状況
2025/1/31
NTTデータグループ 藤井雅雄
第51回 PostgreSQLアンカンファレンス@オンライン
© 2025 NTT DATA Group Corporation 2
自己紹介
藤井 雅雄
Database Technical Lead @ NTTデータグループ
データベース研究開発
PostgreSQL 技術支援
PostgreSQLコミッタ
レプリケーション
WAL圧縮
バックアップ進捗確認
pg_bigm(全文検索モジュール) コミッタ
fujii_masao
MasaoFujii
© 2025 NTT DATA Group Corporation
本講演について
講演資料は、後日、NTTデータグループのSlideShareアカウント上で公開予定です。
https://www.slideshare.net/nttdata-tech
これまでも同様の講演を実施
PostgreSQLのgitレポジトリから見える2020年の開発状況
(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
https://www.slideshare.net/slideshow/postgresql-development-community-activities-2020/242376321
PostgreSQLのgitレポジトリから見える2021年の開発状況
(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)
https://www.slideshare.net/slideshow/postgresql-development-community-activities-2021-pgunconf30-nttdata/251053165
PostgreSQLのgitレポジトリから見える2022年の開発状況
(第38回PostgreSQLアンカンファレンス@オンライン 発表資料)
https://www.slideshare.net/slideshow/postgresql-development-community-activities-2022-pgunconf38-nttdata/255550096
© 2023 NTT DATA Corporation 4
PostgreSQLのgitレポジトリから見える2024年の
開発状況
© 2025 NTT DATA Group Corporation
前提
$ git branch
REL_13_STABLE
REL_14_STABLE
REL_15_STABLE
REL_16_STABLE
REL_17_STABLE
master
調査対象のブランチはmasterのみ
$ git clone git://git.postgresql.org/git/postgresql.git # 公式
$ git clone https://github.com/postgres/postgres.git # GitHub上のミラー
$ git clone https://gitlab.com/postgres/postgres.git # GitLab上のミラー
PostgreSQL本体のgitレポジトリを調査
© 2025 NTT DATA Group Corporation
前提
$ git ... --since 2024-01-01 --until 2024-12-31
--sinceと--untilのオプション指定で2024年のコミットを取得
$ git log --since 2024-01-01 --until 2024-12-31
--pretty=format:"%h %cd %s" --date=iso-local | tail -1
cea89c93a1 2024-01-02 03:17:18 +0900 Turn AT_PASS_* macros into an enum
$ git log --since 2024-01-01 --until 2024-12-31
--pretty=format:"%h %cd %s" --date=iso-local | head -1
98b1efd6ef 2024-12-31 04:33:45 +0900 Update obsolete reference to plpgsql's
gram.y file.
もしくは下記のコミットのIDを指定して2024年のコミットを取得
© 2025 NTT DATA Group Corporation
2024年の総コミット数
$ git log --since 2024-01-01 --until 2024-12-31 --oneline | wc -l
2720
2024年の総コミット数
$ git log --until 2024-12-31 --pretty=format:"%cd"
--date=format:"%Y" | sort | uniq -c | awk '{print $2 " " $1}' | tail -5
2020 2181
2021 2271
2022 2489
2023 2209
2024 2720
直近5年の各年の総コミット数
2024年は例年よりもコミット数が多い
© 2025 NTT DATA Group Corporation
1996年から2024年までの各年のコミット数の推移
$ git log --until 2024-12-31 --pretty=format:"%cd" --date=format:"%Y" |
sort | uniq -c | awk '{print $2 " " $1}'
0
500
1000
1500
2000
2500
3000
3500
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
v10 (論理レプリ、パーティション) 大きな機能が入った
v10を超えるコミット数
v7.1 (WAL、TOAST)
© 2025 NTT DATA Group Corporation
2024年のコミッタ別のコミット数
$ git shortlog --since 2024-01-01 --until 2024-12-31 -s -n | nl
1 344 Peter Eisentraut
2 326 Tom Lane
3 304 Michael Paquier
4 187 Heikki Linnakangas
5 157 Alexander Korotkov
6 138 Nathan Bossart
7 129 David Rowley
8 125 Álvaro Herrera
9 101 Daniel Gustafsson
10 95 Jeff Davis
11 90 Amit Kapila
12 89 Bruce Momjian
13 87 Robert Haas
14 67 Thomas Munro
15 64 Noah Misch
16 55 Amit Langote
17 43 Masahiko Sawada
18 43 Tomas Vondra
19 42 Peter Geoghegan
20 41 Andrew Dunstan
21 36 Fujii Masao
22 35 John Naylor
23 31 Richard Guo
24 26 Andres Freund
25 26 Dean Rasheed
26 18 Melanie Plageman
27 8 Tatsuo Ishii
28 6 Etsuro Fujita
29 4 Magnus Hagander
30 3 Joe Conway
© 2025 NTT DATA Group Corporation
2024年の(コミッタ所属の)会社別のコミット数
1 660 Amazon Web Services (7)
2 592 EnterpriseDB (6)
3 439 Microsoft (7)
4 326 Crunchy Data (1)
5 187 Neon, Inc (1)
6 157 Supabase, Inc (1)
7 90 Fujitsu (1)
8 64 Google Cloud (1)
9 36 NTT DATA Group (1)
10 26 University of Cambridge (1)
11 8 SRA OSS (1)
12 6 NTT (1)
13 4 Redpill Linpro (1)
※2024年のコミッタ別のコミット数について、
2024年末時点のコミッタの所属企業ごとに集計
※()内の数字は各企業の所属コミッタ数
© 2025 NTT DATA Group Corporation
2024年によく更新がコミットされたソースファイル
-- 今回は抽出にfile_fdwを使うため、その準備をする。
=# CREATE EXTENSION file_fdw;
=# CREATE SERVER gitlog FOREIGN DATA WRAPPER file_fdw;
-- 2023年におけるソースファイルごとのコミット数をfile_fdw経由で取得する外部テーブルを作成する。
=# CREATE FOREIGN TABLE t23 (file text, count int) SERVER gitlog OPTIONS (
program 'cd <PostgreSQLのgitレポジトリのパス>;
git log --since 2023-01-01 --until 2023-12-31 --numstat |
grep -E ^[0-9] | cut -f3 | sort | uniq -c | sort -n | awk ''{print $2 "," $1}''',
format 'csv');
-- 2024年におけるソースファイルごとのコミット数をfile_fdw経由で取得する外部テーブルを作成する。
=# CREATE FOREIGN TABLE t24 (file text, count int) SERVER gitlog OPTIONS (
program 'cd <PostgreSQLのgitレポジトリのパス>;
git log --since 2024-01-01 --until 2024-12-31 --numstat |
grep -E ^[0-9] | cut -f3 | sort | uniq -c | sort -n | awk ''{print $2 "," $1}''',
format 'csv');
2024年のコミット数が2023年より30以上多いソースファイルを抽出
© 2025 NTT DATA Group Corporation
2024年によく更新がコミットされたソースファイル
-- 外部テーブルの結合結果から、2024年のコミット数が
-- 2023年より30以上多いソースファイルを抽出する。
=# SELECT diff, file
FROM (SELECT file, COALESCE(t24.count, 0) - COALESCE(t23.count, 0) diff
FROM t23 FULL OUTER JOIN t24 USING (file))
WHERE diff >= 30 ORDER BY diff DESC;
diff | file
------+--------------------------------------------
62 | src/tools/pgindent/typedefs.list
53 | src/backend/commands/tablecmds.c
47 | doc/src/sgml/func.sgml
45 | doc/src/sgml/release-17.sgml
30 | src/backend/replication/logical/slotsync.c
(5 rows)
2024年のコミット数が2023年より30以上多いソースファイルを抽出
v17ではコマンドや関数・プロシージャに関する
新機能や改修は特には多くなかったはずだが、
これらに関するファイルへのコミット数は多い
© 2025 NTT DATA Group Corporation
コマンドや関数に関するRevertが多い
$ git log --oneline --since 2024-01-01 --until 2024-12-31
src/backend/commands/tablecmds.c | grep -i revert
4171c44c9b Revert "Introduce CompactAttribute array in TupleDesc"
3890d90c15 Revert support for ALTER TABLE ... MERGE/SPLIT PARTITION(S) commands
8aee330af5 Revert temporal primary keys and foreign keys
6f8bb7c1e9 Revert structural changes to not-null constraints
8dd0bb84da Revert: Allow table AM tuple_insert() method to return the different slot
da841aa4dc Revert: Let table AM insertion methods control index insertion
bc1e2092eb Revert: Custom reloptions for table AM
867cc7b6dd Revert "Custom reloptions for table AM"
74563f6b90 Revert "Improve compression and storage support with inheritance"
$ git log --oneline --since 2024-01-01 --until 2024-12-31
doc/src/sgml/func.sgml | grep -i revert
3a7ae6b3d9 Revert pg_wal_replay_wait() stored procedure
772faafca1 Revert: Implement pg_wal_replay_wait() stored procedure
0958f8f6bf Revert "Reorganise jsonpath operators and methods"
コマンドと関数に関するファイルへの2024年のRevertのコミットを抽出
© 2025 NTT DATA Group Corporation
Revert support for ALTER TABLE ... MERGE/SPLIT PARTITION(S) commands
パーティションをマージ/分割するコマンド: ALTER TABLE ... MERGE/SPLIT PARTITION(S)
• 現状、パーティションをマージ/分割するには複数のコマンドを実行する必要がある。新しいコマンドでは、1コマンドで簡単にマージ/分割できる
• v17の新機能として予定されていたが、セキュリティ問題が見つかり、v17のリリースまでに修正が間に合わないため、Revertされた。v18に向
けて再度開発・提案中
commit 3890d90c1508125729ed20038d90513694fc3a7b
Author: Alexander Korotkov <akorotkov@postgresql.org>
Date: Sat Aug 24 18:48:48 2024 +0300
Revert support for ALTER TABLE ... MERGE/SPLIT PARTITION(S) commands
This commit reverts 1adf16b8fb, 87c21bb941, and subsequent fixes and
improvements including df64c81ca9, c99ef1811a, 9dfcac8e15, 885742b9f8,
842c9b2705, fcf80c5d5f, 96c7381c4c, f4fc7cb54b, 60ae37a8bc, 259c96fa8f,
449cdcd486, 3ca43dbbb6, 2a679ae94e, 3a82c689fd, fbd4321fd5, d53a4286d7,
c086896625, 4e5d6c4091, 04158e7fa3.
The reason for reverting is security issues related to repeatable name lookups
(CVE-2014-0062). Even though 04158e7fa3 solved part of the problem, there
are still remaining issues, which aren't feasible to even carefully analyze
before the RC deadline.
Reported-by: Noah Misch, Robert Haas
Discussion: https://postgr.es/m/20240808171351.a9.nmisch%40google.com
Backpatch-through: 17
このコマンドは多数のコミットで
構成されていたが、すべてRevert
© 2025 NTT DATA Group Corporation
Revert pg_wal_replay_wait() stored procedure
指定の地点までリカバリが完了するのを待つプロシージャ: pg_wal_replay_wait()
• 例えば、プライマリ上の特定の更新が確実にスタンバイに反映されてからクエリ実行したい場合、このプロシージャを使ってその更新反映を手
軽に待つことができる
• v17の新機能として予定されていたが、複数の不備の指摘があり、Revertされた。v18に向けても再度コミットされたが、再び不備が指摘
されRevertされた。
このプロシージャは多数のコミットで
構成されていたが、すべてRevert
commit 3a7ae6b3d91e0d011dba1eb8a29e1836c6a33c75
Author: Alexander Korotkov <akorotkov@postgresql.org>
Date: Mon Nov 4 22:43:08 2024 +0200
Revert pg_wal_replay_wait() stored procedure
This commit reverts 3c5db1d6b0, and subsequent improvements and fixes
including 8036d73ae3, 867d396ccd, 3ac3ec580c, 0868d7ae70, 85b98b8d5a,
2520226c95, 014f9f34d2, e658038772, e1555645d7, 5035172e4a, 6cfebfe88b,
73da6b8d1b, and e546989a26.
The reason for reverting is a set of remaining issues. Most notably, the
stored procedure appears to need more effort than the utility statement
to turn the backend into a "snapshot-less" state. This makes an approach
to use stored procedures questionable.
Catversion is bumped.
Discussion: https://postgr.es/m/Zyhj2anOPRKtb0xW%40paquier.xyz
commit 772faafca1b288c4dd66b7150a7831c27b768003
Author: Alexander Korotkov <akorotkov@postgresql.org>
Date: Thu Apr 11 16:30:32 2024 +0300
Revert: Implement pg_wal_replay_wait() stored procedure
This commit reverts 06c418e163, e37662f221, bf1e650806, 25f42429e2,
ee79928441, and 74eaf66f98 per review by Heikki Linnakangas.
Discussion: https://postgr.es/m/b155606b-e744-4218-bda5-29379779da1a%40iki.fi
© 2025 NTT DATA Group Corporation
2024年に更新量が多かったソースファイル
$ git diff cea89c93a1 98b1efd6ef --stat | grep -E ".[chy]" | sort -k 3 -n -r | head -10
src/backend/commands/tablecmds.c | 4350 +--
src/backend/postmaster/postmaster.c | 4194 +--
src/include/common/unicode_category_table.h | 3698 ++-
src/include/lib/radixtree.h | 3056 ++
src/backend/access/nbtree/nbtutils.c | 3046 +-
src/include/common/unicode_case_table.h | 3001 ++
src/bin/pg_dump/pg_dump.c | 2718 +-
src/backend/access/heap/heapam.c | 2655 +-
src/bin/pg_basebackup/pg_createsubscriber.c | 2252 ++
src/backend/utils/adt/jsonpath_exec.c | 2173 +-
2024年に更新量が多かったソースファイル、トップ10
v17新機能関連の
ソースファイルの更新量が多い
• プラットフォーム非依存builtin
collation
• VACUUM改善
• pg_createsubscriber
• JSON関連(JSONPATHメソッ
ドの追加など)
© 2025 NTT DATA Group Corporation
2024年に更新量が多かったソースファイル
$ git diff cea89c93a1 98b1efd6ef --stat | grep -E ".[chy]" | sort -k 3 -n -r | head -10
src/backend/commands/tablecmds.c | 4350 +--
src/backend/postmaster/postmaster.c | 4194 +--
src/include/common/unicode_category_table.h | 3698 ++-
src/include/lib/radixtree.h | 3056 ++
src/backend/access/nbtree/nbtutils.c | 3046 +-
src/include/common/unicode_case_table.h | 3001 ++
src/bin/pg_dump/pg_dump.c | 2718 +-
src/backend/access/heap/heapam.c | 2655 +-
src/bin/pg_basebackup/pg_createsubscriber.c | 2252 ++
src/backend/utils/adt/jsonpath_exec.c | 2173 +-
2024年に更新量が多かったソースファイル、トップ10
コードを読みやすくレビューしやすくす
るために、バックエンドなどの子プロセ
スの起動関連の大量のコードを
postmaster.cから別ソースファイル
に移動して、リファクタリングも実施
提案時の議論によると、
PostgreSQLのマルチスレッド化
に向けた準備として実施とのこと
記載されている会社名、商品名、又はサービス名は、
各社の登録商標又は商標です。
© 2025 NTT DATA Group Corporation
2024年の月別のコミット数の推移
$ git log --since 2024-01-01 --until 2024-12-31 --pretty=format:"%cd"
--date=format:"%Y-%m" | sort | uniq -c
0
50
100
150
200
250
300
350
400
1 2 3 4 5 6 7 8 9 10 11 12
2023
2024
概ねどの月も昨年よりコミット数が多い

PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)

  • 1.
    © 2025 NTTDATA Group Corporation © 2025 NTT DATA Group Corporation PostgreSQLのgitレポジトリから見える2024年の開発状況 2025/1/31 NTTデータグループ 藤井雅雄 第51回 PostgreSQLアンカンファレンス@オンライン
  • 2.
    © 2025 NTTDATA Group Corporation 2 自己紹介 藤井 雅雄 Database Technical Lead @ NTTデータグループ データベース研究開発 PostgreSQL 技術支援 PostgreSQLコミッタ レプリケーション WAL圧縮 バックアップ進捗確認 pg_bigm(全文検索モジュール) コミッタ fujii_masao MasaoFujii
  • 3.
    © 2025 NTTDATA Group Corporation 本講演について 講演資料は、後日、NTTデータグループのSlideShareアカウント上で公開予定です。 https://www.slideshare.net/nttdata-tech これまでも同様の講演を実施 PostgreSQLのgitレポジトリから見える2020年の開発状況 (第20回PostgreSQLアンカンファレンス@オンライン 発表資料) https://www.slideshare.net/slideshow/postgresql-development-community-activities-2020/242376321 PostgreSQLのgitレポジトリから見える2021年の開発状況 (第30回PostgreSQLアンカンファレンス@オンライン 発表資料) https://www.slideshare.net/slideshow/postgresql-development-community-activities-2021-pgunconf30-nttdata/251053165 PostgreSQLのgitレポジトリから見える2022年の開発状況 (第38回PostgreSQLアンカンファレンス@オンライン 発表資料) https://www.slideshare.net/slideshow/postgresql-development-community-activities-2022-pgunconf38-nttdata/255550096
  • 4.
    © 2023 NTTDATA Corporation 4 PostgreSQLのgitレポジトリから見える2024年の 開発状況
  • 5.
    © 2025 NTTDATA Group Corporation 前提 $ git branch REL_13_STABLE REL_14_STABLE REL_15_STABLE REL_16_STABLE REL_17_STABLE master 調査対象のブランチはmasterのみ $ git clone git://git.postgresql.org/git/postgresql.git # 公式 $ git clone https://github.com/postgres/postgres.git # GitHub上のミラー $ git clone https://gitlab.com/postgres/postgres.git # GitLab上のミラー PostgreSQL本体のgitレポジトリを調査
  • 6.
    © 2025 NTTDATA Group Corporation 前提 $ git ... --since 2024-01-01 --until 2024-12-31 --sinceと--untilのオプション指定で2024年のコミットを取得 $ git log --since 2024-01-01 --until 2024-12-31 --pretty=format:"%h %cd %s" --date=iso-local | tail -1 cea89c93a1 2024-01-02 03:17:18 +0900 Turn AT_PASS_* macros into an enum $ git log --since 2024-01-01 --until 2024-12-31 --pretty=format:"%h %cd %s" --date=iso-local | head -1 98b1efd6ef 2024-12-31 04:33:45 +0900 Update obsolete reference to plpgsql's gram.y file. もしくは下記のコミットのIDを指定して2024年のコミットを取得
  • 7.
    © 2025 NTTDATA Group Corporation 2024年の総コミット数 $ git log --since 2024-01-01 --until 2024-12-31 --oneline | wc -l 2720 2024年の総コミット数 $ git log --until 2024-12-31 --pretty=format:"%cd" --date=format:"%Y" | sort | uniq -c | awk '{print $2 " " $1}' | tail -5 2020 2181 2021 2271 2022 2489 2023 2209 2024 2720 直近5年の各年の総コミット数 2024年は例年よりもコミット数が多い
  • 8.
    © 2025 NTTDATA Group Corporation 1996年から2024年までの各年のコミット数の推移 $ git log --until 2024-12-31 --pretty=format:"%cd" --date=format:"%Y" | sort | uniq -c | awk '{print $2 " " $1}' 0 500 1000 1500 2000 2500 3000 3500 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 v10 (論理レプリ、パーティション) 大きな機能が入った v10を超えるコミット数 v7.1 (WAL、TOAST)
  • 9.
    © 2025 NTTDATA Group Corporation 2024年のコミッタ別のコミット数 $ git shortlog --since 2024-01-01 --until 2024-12-31 -s -n | nl 1 344 Peter Eisentraut 2 326 Tom Lane 3 304 Michael Paquier 4 187 Heikki Linnakangas 5 157 Alexander Korotkov 6 138 Nathan Bossart 7 129 David Rowley 8 125 Álvaro Herrera 9 101 Daniel Gustafsson 10 95 Jeff Davis 11 90 Amit Kapila 12 89 Bruce Momjian 13 87 Robert Haas 14 67 Thomas Munro 15 64 Noah Misch 16 55 Amit Langote 17 43 Masahiko Sawada 18 43 Tomas Vondra 19 42 Peter Geoghegan 20 41 Andrew Dunstan 21 36 Fujii Masao 22 35 John Naylor 23 31 Richard Guo 24 26 Andres Freund 25 26 Dean Rasheed 26 18 Melanie Plageman 27 8 Tatsuo Ishii 28 6 Etsuro Fujita 29 4 Magnus Hagander 30 3 Joe Conway
  • 10.
    © 2025 NTTDATA Group Corporation 2024年の(コミッタ所属の)会社別のコミット数 1 660 Amazon Web Services (7) 2 592 EnterpriseDB (6) 3 439 Microsoft (7) 4 326 Crunchy Data (1) 5 187 Neon, Inc (1) 6 157 Supabase, Inc (1) 7 90 Fujitsu (1) 8 64 Google Cloud (1) 9 36 NTT DATA Group (1) 10 26 University of Cambridge (1) 11 8 SRA OSS (1) 12 6 NTT (1) 13 4 Redpill Linpro (1) ※2024年のコミッタ別のコミット数について、 2024年末時点のコミッタの所属企業ごとに集計 ※()内の数字は各企業の所属コミッタ数
  • 11.
    © 2025 NTTDATA Group Corporation 2024年によく更新がコミットされたソースファイル -- 今回は抽出にfile_fdwを使うため、その準備をする。 =# CREATE EXTENSION file_fdw; =# CREATE SERVER gitlog FOREIGN DATA WRAPPER file_fdw; -- 2023年におけるソースファイルごとのコミット数をfile_fdw経由で取得する外部テーブルを作成する。 =# CREATE FOREIGN TABLE t23 (file text, count int) SERVER gitlog OPTIONS ( program 'cd <PostgreSQLのgitレポジトリのパス>; git log --since 2023-01-01 --until 2023-12-31 --numstat | grep -E ^[0-9] | cut -f3 | sort | uniq -c | sort -n | awk ''{print $2 "," $1}''', format 'csv'); -- 2024年におけるソースファイルごとのコミット数をfile_fdw経由で取得する外部テーブルを作成する。 =# CREATE FOREIGN TABLE t24 (file text, count int) SERVER gitlog OPTIONS ( program 'cd <PostgreSQLのgitレポジトリのパス>; git log --since 2024-01-01 --until 2024-12-31 --numstat | grep -E ^[0-9] | cut -f3 | sort | uniq -c | sort -n | awk ''{print $2 "," $1}''', format 'csv'); 2024年のコミット数が2023年より30以上多いソースファイルを抽出
  • 12.
    © 2025 NTTDATA Group Corporation 2024年によく更新がコミットされたソースファイル -- 外部テーブルの結合結果から、2024年のコミット数が -- 2023年より30以上多いソースファイルを抽出する。 =# SELECT diff, file FROM (SELECT file, COALESCE(t24.count, 0) - COALESCE(t23.count, 0) diff FROM t23 FULL OUTER JOIN t24 USING (file)) WHERE diff >= 30 ORDER BY diff DESC; diff | file ------+-------------------------------------------- 62 | src/tools/pgindent/typedefs.list 53 | src/backend/commands/tablecmds.c 47 | doc/src/sgml/func.sgml 45 | doc/src/sgml/release-17.sgml 30 | src/backend/replication/logical/slotsync.c (5 rows) 2024年のコミット数が2023年より30以上多いソースファイルを抽出 v17ではコマンドや関数・プロシージャに関する 新機能や改修は特には多くなかったはずだが、 これらに関するファイルへのコミット数は多い
  • 13.
    © 2025 NTTDATA Group Corporation コマンドや関数に関するRevertが多い $ git log --oneline --since 2024-01-01 --until 2024-12-31 src/backend/commands/tablecmds.c | grep -i revert 4171c44c9b Revert "Introduce CompactAttribute array in TupleDesc" 3890d90c15 Revert support for ALTER TABLE ... MERGE/SPLIT PARTITION(S) commands 8aee330af5 Revert temporal primary keys and foreign keys 6f8bb7c1e9 Revert structural changes to not-null constraints 8dd0bb84da Revert: Allow table AM tuple_insert() method to return the different slot da841aa4dc Revert: Let table AM insertion methods control index insertion bc1e2092eb Revert: Custom reloptions for table AM 867cc7b6dd Revert "Custom reloptions for table AM" 74563f6b90 Revert "Improve compression and storage support with inheritance" $ git log --oneline --since 2024-01-01 --until 2024-12-31 doc/src/sgml/func.sgml | grep -i revert 3a7ae6b3d9 Revert pg_wal_replay_wait() stored procedure 772faafca1 Revert: Implement pg_wal_replay_wait() stored procedure 0958f8f6bf Revert "Reorganise jsonpath operators and methods" コマンドと関数に関するファイルへの2024年のRevertのコミットを抽出
  • 14.
    © 2025 NTTDATA Group Corporation Revert support for ALTER TABLE ... MERGE/SPLIT PARTITION(S) commands パーティションをマージ/分割するコマンド: ALTER TABLE ... MERGE/SPLIT PARTITION(S) • 現状、パーティションをマージ/分割するには複数のコマンドを実行する必要がある。新しいコマンドでは、1コマンドで簡単にマージ/分割できる • v17の新機能として予定されていたが、セキュリティ問題が見つかり、v17のリリースまでに修正が間に合わないため、Revertされた。v18に向 けて再度開発・提案中 commit 3890d90c1508125729ed20038d90513694fc3a7b Author: Alexander Korotkov <akorotkov@postgresql.org> Date: Sat Aug 24 18:48:48 2024 +0300 Revert support for ALTER TABLE ... MERGE/SPLIT PARTITION(S) commands This commit reverts 1adf16b8fb, 87c21bb941, and subsequent fixes and improvements including df64c81ca9, c99ef1811a, 9dfcac8e15, 885742b9f8, 842c9b2705, fcf80c5d5f, 96c7381c4c, f4fc7cb54b, 60ae37a8bc, 259c96fa8f, 449cdcd486, 3ca43dbbb6, 2a679ae94e, 3a82c689fd, fbd4321fd5, d53a4286d7, c086896625, 4e5d6c4091, 04158e7fa3. The reason for reverting is security issues related to repeatable name lookups (CVE-2014-0062). Even though 04158e7fa3 solved part of the problem, there are still remaining issues, which aren't feasible to even carefully analyze before the RC deadline. Reported-by: Noah Misch, Robert Haas Discussion: https://postgr.es/m/20240808171351.a9.nmisch%40google.com Backpatch-through: 17 このコマンドは多数のコミットで 構成されていたが、すべてRevert
  • 15.
    © 2025 NTTDATA Group Corporation Revert pg_wal_replay_wait() stored procedure 指定の地点までリカバリが完了するのを待つプロシージャ: pg_wal_replay_wait() • 例えば、プライマリ上の特定の更新が確実にスタンバイに反映されてからクエリ実行したい場合、このプロシージャを使ってその更新反映を手 軽に待つことができる • v17の新機能として予定されていたが、複数の不備の指摘があり、Revertされた。v18に向けても再度コミットされたが、再び不備が指摘 されRevertされた。 このプロシージャは多数のコミットで 構成されていたが、すべてRevert commit 3a7ae6b3d91e0d011dba1eb8a29e1836c6a33c75 Author: Alexander Korotkov <akorotkov@postgresql.org> Date: Mon Nov 4 22:43:08 2024 +0200 Revert pg_wal_replay_wait() stored procedure This commit reverts 3c5db1d6b0, and subsequent improvements and fixes including 8036d73ae3, 867d396ccd, 3ac3ec580c, 0868d7ae70, 85b98b8d5a, 2520226c95, 014f9f34d2, e658038772, e1555645d7, 5035172e4a, 6cfebfe88b, 73da6b8d1b, and e546989a26. The reason for reverting is a set of remaining issues. Most notably, the stored procedure appears to need more effort than the utility statement to turn the backend into a "snapshot-less" state. This makes an approach to use stored procedures questionable. Catversion is bumped. Discussion: https://postgr.es/m/Zyhj2anOPRKtb0xW%40paquier.xyz commit 772faafca1b288c4dd66b7150a7831c27b768003 Author: Alexander Korotkov <akorotkov@postgresql.org> Date: Thu Apr 11 16:30:32 2024 +0300 Revert: Implement pg_wal_replay_wait() stored procedure This commit reverts 06c418e163, e37662f221, bf1e650806, 25f42429e2, ee79928441, and 74eaf66f98 per review by Heikki Linnakangas. Discussion: https://postgr.es/m/b155606b-e744-4218-bda5-29379779da1a%40iki.fi
  • 16.
    © 2025 NTTDATA Group Corporation 2024年に更新量が多かったソースファイル $ git diff cea89c93a1 98b1efd6ef --stat | grep -E ".[chy]" | sort -k 3 -n -r | head -10 src/backend/commands/tablecmds.c | 4350 +-- src/backend/postmaster/postmaster.c | 4194 +-- src/include/common/unicode_category_table.h | 3698 ++- src/include/lib/radixtree.h | 3056 ++ src/backend/access/nbtree/nbtutils.c | 3046 +- src/include/common/unicode_case_table.h | 3001 ++ src/bin/pg_dump/pg_dump.c | 2718 +- src/backend/access/heap/heapam.c | 2655 +- src/bin/pg_basebackup/pg_createsubscriber.c | 2252 ++ src/backend/utils/adt/jsonpath_exec.c | 2173 +- 2024年に更新量が多かったソースファイル、トップ10 v17新機能関連の ソースファイルの更新量が多い • プラットフォーム非依存builtin collation • VACUUM改善 • pg_createsubscriber • JSON関連(JSONPATHメソッ ドの追加など)
  • 17.
    © 2025 NTTDATA Group Corporation 2024年に更新量が多かったソースファイル $ git diff cea89c93a1 98b1efd6ef --stat | grep -E ".[chy]" | sort -k 3 -n -r | head -10 src/backend/commands/tablecmds.c | 4350 +-- src/backend/postmaster/postmaster.c | 4194 +-- src/include/common/unicode_category_table.h | 3698 ++- src/include/lib/radixtree.h | 3056 ++ src/backend/access/nbtree/nbtutils.c | 3046 +- src/include/common/unicode_case_table.h | 3001 ++ src/bin/pg_dump/pg_dump.c | 2718 +- src/backend/access/heap/heapam.c | 2655 +- src/bin/pg_basebackup/pg_createsubscriber.c | 2252 ++ src/backend/utils/adt/jsonpath_exec.c | 2173 +- 2024年に更新量が多かったソースファイル、トップ10 コードを読みやすくレビューしやすくす るために、バックエンドなどの子プロセ スの起動関連の大量のコードを postmaster.cから別ソースファイル に移動して、リファクタリングも実施 提案時の議論によると、 PostgreSQLのマルチスレッド化 に向けた準備として実施とのこと
  • 18.
  • 19.
    © 2025 NTTDATA Group Corporation 2024年の月別のコミット数の推移 $ git log --since 2024-01-01 --until 2024-12-31 --pretty=format:"%cd" --date=format:"%Y-%m" | sort | uniq -c 0 50 100 150 200 250 300 350 400 1 2 3 4 5 6 7 8 9 10 11 12 2023 2024 概ねどの月も昨年よりコミット数が多い