=== Applying patches on top of PostgreSQL commit ID 02c171f63fca870d55c4b184a4b7c0cebb06faa1 === /etc/rc.d/jail: WARNING: Per-jail configuration via jail_* variables is obsolete. Please consider migrating to /etc/jail.conf. Thu Oct 16 04:06:21 UTC 2025 On branch cf/5614 nothing to commit, working tree clean === using 'git am' to apply patch ./v2-0001-Add-metadata-non-leaf-index-block-statistics-to-p.patch === Applying: Add metadata (non-leaf) index block statistics to pg_stat functions and system views. Using index info to reconstruct a base tree... M doc/src/sgml/monitoring.sgml M src/backend/access/brin/brin.c M src/backend/access/gin/ginget.c M src/backend/access/gist/gist.c M src/backend/access/gist/gistbuild.c M src/backend/access/nbtree/nbtinsert.c M src/backend/access/nbtree/nbtsearch.c M src/backend/access/nbtree/nbtutils.c M src/backend/access/spgist/spgutils.c M src/backend/catalog/system_views.sql M src/backend/utils/activity/pgstat_relation.c M src/backend/utils/adt/pgstatfuncs.c M src/include/catalog/pg_proc.dat M src/include/pgstat.h M src/test/regress/expected/rules.out M src/test/regress/expected/stats.out M src/test/regress/sql/stats.sql Falling back to patching base and 3-way merge... Auto-merging src/test/regress/sql/stats.sql Auto-merging src/test/regress/expected/stats.out Auto-merging src/test/regress/expected/rules.out CONFLICT (content): Merge conflict in src/test/regress/expected/rules.out Auto-merging src/include/pgstat.h Auto-merging src/include/catalog/pg_proc.dat Auto-merging src/backend/utils/adt/pgstatfuncs.c Auto-merging src/backend/utils/activity/pgstat_relation.c Auto-merging src/backend/catalog/system_views.sql CONFLICT (content): Merge conflict in src/backend/catalog/system_views.sql Auto-merging src/backend/access/spgist/spgutils.c Auto-merging src/backend/access/nbtree/nbtutils.c Auto-merging src/backend/access/nbtree/nbtsearch.c Auto-merging src/backend/access/nbtree/nbtinsert.c Auto-merging src/backend/access/gist/gistbuild.c Auto-merging src/backend/access/gist/gist.c CONFLICT (content): Merge conflict in src/backend/access/gist/gist.c Auto-merging src/backend/access/gin/ginget.c Auto-merging src/backend/access/brin/brin.c Auto-merging doc/src/sgml/monitoring.sgml CONFLICT (content): Merge conflict in doc/src/sgml/monitoring.sgml error: Failed to merge in the changes. hint: Use 'git am --show-current-patch=diff' to see the failed patch Patch failed at 0001 Add metadata (non-leaf) index block statistics to pg_stat functions and system views. When you have resolved this problem, run "git am --continue". If you prefer to skip this patch, run "git am --skip" instead. To restore the original branch and stop patching, run "git am --abort". Unstaged changes after reset: M doc/src/sgml/monitoring.sgml M src/backend/access/brin/brin.c M src/backend/access/brin/brin_revmap.c M src/backend/access/gin/ginbtree.c M src/backend/access/gin/ginfast.c M src/backend/access/gin/ginget.c M src/backend/access/gin/ginutil.c M src/backend/access/gist/gist.c M src/backend/access/gist/gistbuild.c M src/backend/access/gist/gistget.c M src/backend/access/hash/hashpage.c M src/backend/access/nbtree/nbtinsert.c M src/backend/access/nbtree/nbtpage.c M src/backend/access/nbtree/nbtsearch.c M src/backend/access/nbtree/nbtutils.c M src/backend/access/spgist/spgdoinsert.c M src/backend/access/spgist/spgscan.c M src/backend/access/spgist/spgutils.c M src/backend/catalog/system_views.sql M src/backend/utils/activity/pgstat_database.c M src/backend/utils/activity/pgstat_relation.c M src/backend/utils/adt/pgstatfuncs.c M src/include/catalog/pg_proc.dat M src/include/pgstat.h M src/test/regress/expected/rules.out M src/test/regress/expected/stats.out M src/test/regress/sql/stats.sql === using patch(1) to apply patch ./v2-0001-Add-metadata-non-leaf-index-block-statistics-to-p.patch === patching file doc/src/sgml/monitoring.sgml Hunk #1 succeeded at 3442 (offset 22 lines). Hunk #2 succeeded at 4435 (offset 42 lines). Hunk #3 succeeded at 4675 with fuzz 1 (offset 138 lines). patching file src/backend/access/brin/brin.c patching file src/backend/access/brin/brin_revmap.c patching file src/backend/access/gin/ginbtree.c patching file src/backend/access/gin/ginfast.c patching file src/backend/access/gin/ginget.c Hunk #2 succeeded at 1494 (offset 2 lines). Hunk #3 succeeded at 1848 (offset 2 lines). Hunk #4 succeeded at 1874 (offset 2 lines). patching file src/backend/access/gin/ginutil.c patching file src/backend/access/gist/gist.c Hunk #4 succeeded at 1102 with fuzz 1. Hunk #5 FAILED at 1131. 1 out of 6 hunks FAILED -- saving rejects to file src/backend/access/gist/gist.c.rej patching file src/backend/access/gist/gistbuild.c Hunk #2 succeeded at 968 with fuzz 1. patching file src/backend/access/gist/gistget.c patching file src/backend/access/hash/hashpage.c patching file src/backend/access/nbtree/nbtinsert.c Hunk #1 succeeded at 22 (offset 1 line). Hunk #2 succeeded at 1262 (offset 1 line). Hunk #3 succeeded at 2268 (offset 10 lines). Hunk #4 succeeded at 2279 (offset 10 lines). Hunk #5 succeeded at 2348 (offset 10 lines). Hunk #6 succeeded at 2489 (offset 10 lines). patching file src/backend/access/nbtree/nbtpage.c patching file src/backend/access/nbtree/nbtsearch.c Hunk #4 succeeded at 2516 (offset -2 lines). Hunk #5 succeeded at 2544 (offset -2 lines). Hunk #6 succeeded at 2555 (offset -2 lines). Hunk #7 succeeded at 2574 (offset -2 lines). Hunk #8 succeeded at 2664 (offset -2 lines). Hunk #9 succeeded at 2688 (offset -2 lines). patching file src/backend/access/nbtree/nbtutils.c Hunk #1 succeeded at 22 with fuzz 1 (offset 1 line). patching file src/backend/access/spgist/spgdoinsert.c patching file src/backend/access/spgist/spgscan.c patching file src/backend/access/spgist/spgutils.c patching file src/backend/catalog/system_views.sql Hunk #1 succeeded at 785 (offset 19 lines). Hunk #2 succeeded at 800 (offset 20 lines). Hunk #3 FAILED at 839. Hunk #4 succeeded at 1097 (offset 23 lines). 1 out of 4 hunks FAILED -- saving rejects to file src/backend/catalog/system_views.sql.rej patching file src/backend/utils/activity/pgstat_database.c patching file src/backend/utils/activity/pgstat_relation.c patching file src/backend/utils/adt/pgstatfuncs.c Hunk #2 succeeded at 1058 (offset 21 lines). patching file src/include/catalog/pg_proc.dat Hunk #1 succeeded at 5596 (offset 16 lines). Hunk #2 succeeded at 5812 (offset 16 lines). patching file src/include/pgstat.h Hunk #1 succeeded at 154 (offset 1 line). Hunk #2 succeeded at 348 (offset 1 line). Hunk #3 succeeded at 445 (offset 3 lines). Hunk #4 succeeded at 720 (offset 5 lines). patching file src/test/regress/expected/rules.out Hunk #1 succeeded at 1882 (offset 14 lines). Hunk #2 FAILED at 2361. Hunk #3 succeeded at 2409 (offset 27 lines). Hunk #4 succeeded at 2419 (offset 28 lines). Hunk #5 FAILED at 2406. Hunk #6 succeeded at 2452 (offset 29 lines). Hunk #7 FAILED at 2436. Hunk #8 succeeded at 2484 (offset 31 lines). 3 out of 8 hunks FAILED -- saving rejects to file src/test/regress/expected/rules.out.rej patching file src/test/regress/expected/stats.out Hunk #1 succeeded at 1910 (offset 42 lines). patching file src/test/regress/sql/stats.sql Hunk #1 succeeded at 944 (offset 19 lines). Unstaged changes after reset: M doc/src/sgml/monitoring.sgml M src/backend/access/brin/brin.c M src/backend/access/brin/brin_revmap.c M src/backend/access/gin/ginbtree.c M src/backend/access/gin/ginfast.c M src/backend/access/gin/ginget.c M src/backend/access/gin/ginutil.c M src/backend/access/gist/gist.c M src/backend/access/gist/gistbuild.c M src/backend/access/gist/gistget.c M src/backend/access/hash/hashpage.c M src/backend/access/nbtree/nbtinsert.c M src/backend/access/nbtree/nbtpage.c M src/backend/access/nbtree/nbtsearch.c M src/backend/access/nbtree/nbtutils.c M src/backend/access/spgist/spgdoinsert.c M src/backend/access/spgist/spgscan.c M src/backend/access/spgist/spgutils.c M src/backend/catalog/system_views.sql M src/backend/utils/activity/pgstat_database.c M src/backend/utils/activity/pgstat_relation.c M src/backend/utils/adt/pgstatfuncs.c M src/include/catalog/pg_proc.dat M src/include/pgstat.h M src/test/regress/expected/rules.out M src/test/regress/expected/stats.out M src/test/regress/sql/stats.sql Removing src/backend/access/gist/gist.c.rej Removing src/backend/catalog/system_views.sql.rej Removing src/test/regress/expected/rules.out.rej === using 'git apply' to apply patch ./v2-0001-Add-metadata-non-leaf-index-block-statistics-to-p.patch === Applied patch to 'doc/src/sgml/monitoring.sgml' with conflicts. Applied patch to 'src/backend/access/brin/brin.c' cleanly. Applied patch to 'src/backend/access/brin/brin_revmap.c' cleanly. Applied patch to 'src/backend/access/gin/ginbtree.c' cleanly. Applied patch to 'src/backend/access/gin/ginfast.c' cleanly. Applied patch to 'src/backend/access/gin/ginget.c' cleanly. Applied patch to 'src/backend/access/gin/ginutil.c' cleanly. Applied patch to 'src/backend/access/gist/gist.c' with conflicts. Applied patch to 'src/backend/access/gist/gistbuild.c' cleanly. Applied patch to 'src/backend/access/gist/gistget.c' cleanly. Applied patch to 'src/backend/access/hash/hashpage.c' cleanly. Applied patch to 'src/backend/access/nbtree/nbtinsert.c' cleanly. Applied patch to 'src/backend/access/nbtree/nbtpage.c' cleanly. Applied patch to 'src/backend/access/nbtree/nbtsearch.c' cleanly. Applied patch to 'src/backend/access/nbtree/nbtutils.c' cleanly. Applied patch to 'src/backend/access/spgist/spgdoinsert.c' cleanly. Applied patch to 'src/backend/access/spgist/spgscan.c' cleanly. Applied patch to 'src/backend/access/spgist/spgutils.c' cleanly. Applied patch to 'src/backend/catalog/system_views.sql' with conflicts. Applied patch to 'src/backend/utils/activity/pgstat_database.c' cleanly. Applied patch to 'src/backend/utils/activity/pgstat_relation.c' cleanly. Applied patch to 'src/backend/utils/adt/pgstatfuncs.c' cleanly. Applied patch to 'src/include/catalog/pg_proc.dat' cleanly. Applied patch to 'src/include/pgstat.h' cleanly. Applied patch to 'src/test/regress/expected/rules.out' with conflicts. Applied patch to 'src/test/regress/expected/stats.out' cleanly. Applied patch to 'src/test/regress/sql/stats.sql' cleanly. U doc/src/sgml/monitoring.sgml U src/backend/access/gist/gist.c U src/backend/catalog/system_views.sql U src/test/regress/expected/rules.out diff --cc doc/src/sgml/monitoring.sgml index dc4fc29466d,beb1dded0b2..00000000000 --- a/doc/src/sgml/monitoring.sgml +++ b/doc/src/sgml/monitoring.sgml @@@ -4573,12 -4540,13 +4591,22 @@@ description | Waiting for a newly initi ++<<<<<<< ours + stats_reset timestamp with time zone + + + Time at which these statistics were last reset + + ++======= + idx_metadata_blks bigint + + + Number of metadata (non-leaf) index disk blocks read or hit in this index + + + ++>>>>>>> theirs diff --cc src/backend/access/gist/gist.c index a96796d5c7d,2e5cc912964..00000000000 --- a/src/backend/access/gist/gist.c +++ b/src/backend/access/gist/gist.c @@@ -1096,9 -1102,12 +1102,12 @@@ gistFindCorrectParent(Relation r, GISTI break; } parent->buffer = ReadBuffer(r, parent->blkno); + + pgstat_count_metadata_buffer(r); + LockBuffer(parent->buffer, GIST_EXCLUSIVE); gistcheckpage(r, parent->buffer); - parent->page = (Page) BufferGetPage(parent->buffer); + parent->page = BufferGetPage(parent->buffer); } /* @@@ -1121,7 -1130,8 +1130,12 @@@ while (ptr) { ptr->buffer = ReadBuffer(r, ptr->blkno); ++<<<<<<< ours + ptr->page = BufferGetPage(ptr->buffer); ++======= + ptr->page = (Page) BufferGetPage(ptr->buffer); + pgstat_count_metadata_buffer_if(!GistPageIsLeaf(ptr->page), r); ++>>>>>>> theirs ptr = ptr->parent; } diff --cc src/backend/catalog/system_views.sql index 823776c1498,3e13252a53d..00000000000 --- a/src/backend/catalog/system_views.sql +++ b/src/backend/catalog/system_views.sql @@@ -858,7 -840,7 +861,11 @@@ CREATE VIEW pg_statio_all_indexes A pg_stat_get_blocks_fetched(I.oid) - pg_stat_get_blocks_hit(I.oid) AS idx_blks_read, pg_stat_get_blocks_hit(I.oid) AS idx_blks_hit, ++<<<<<<< ours + pg_stat_get_stat_reset_time(I.oid) AS stats_reset ++======= + pg_stat_get_idx_metadata_blocks(I.oid) AS idx_metadata_blks ++>>>>>>> theirs FROM pg_class C JOIN pg_index X ON C.oid = X.indrelid JOIN pg_class I ON I.oid = X.indexrelid diff --cc src/test/regress/expected/rules.out index 16753b2e4c0,16c2b39b812..00000000000 --- a/src/test/regress/expected/rules.out +++ b/src/test/regress/expected/rules.out @@@ -2387,7 -2362,7 +2388,11 @@@ pg_statio_all_indexes| SELECT c.oid AS i.relname AS indexrelname, (pg_stat_get_blocks_fetched(i.oid) - pg_stat_get_blocks_hit(i.oid)) AS idx_blks_read, pg_stat_get_blocks_hit(i.oid) AS idx_blks_hit, ++<<<<<<< ours + pg_stat_get_stat_reset_time(i.oid) AS stats_reset ++======= + pg_stat_get_idx_metadata_blocks(i.oid) AS idx_metadata_blks ++>>>>>>> theirs FROM (((pg_class c JOIN pg_index x ON ((c.oid = x.indrelid))) JOIN pg_class i ON ((i.oid = x.indexrelid))) @@@ -2432,7 -2408,7 +2439,11 @@@ pg_statio_sys_indexes| SELECT relid indexrelname, idx_blks_read, idx_blks_hit, ++<<<<<<< ours + stats_reset ++======= + idx_metadata_blks ++>>>>>>> theirs FROM pg_statio_all_indexes WHERE ((schemaname = ANY (ARRAY['pg_catalog'::name, 'information_schema'::name])) OR (schemaname ~ '^pg_toast'::text)); pg_statio_sys_sequences| SELECT relid, @@@ -2463,7 -2439,7 +2475,11 @@@ pg_statio_user_indexes| SELECT relid indexrelname, idx_blks_read, idx_blks_hit, ++<<<<<<< ours + stats_reset ++======= + idx_metadata_blks ++>>>>>>> theirs FROM pg_statio_all_indexes WHERE ((schemaname <> ALL (ARRAY['pg_catalog'::name, 'information_schema'::name])) AND (schemaname !~ '^pg_toast'::text)); pg_statio_user_sequences| SELECT relid,