The latest patch fails while applying header files part. Kindly rebase.
Thanks for the review.
The patch looks good to me. However, I wonder what are the other scenarios where xact_commit is incremented because even if I commit a single transaction with your patch applied the increment in xact_commit is > 1. As you mentioned upthread, need to check what internal operation resulted in the increase. But the increase in xact_commit is surely lesser with the patch.
Currently, the transaction counts are incremented by the background process like autovacuum and checkpointer.
when turn the autovacuum off, you can see exactly how many transaction commits increases.
postgres=# BEGIN; BEGIN postgres=# select xact_commit from pg_stat_database where datname = 'postgres'; xact_commit ------------- 158 (1 row)
postgres=# explain analyze select * from foo where i = 1000; QUERY PLAN ------------------------------------------------------------------------------------------------------------------------ Gather (cost=1000.00..136417.85 rows=1 width=37) (actual time=4.596..3792.710 rows=1 loops=1) Workers Planned: 2 Workers Launched: 2 -> Parallel Seq Scan on foo (cost=0.00..135417.75 rows=1 width=37) (actual time=2448.038..3706.009 rows=0 loops=3) Filter: (i = 1000) Rows Removed by Filter: 3333333 Planning Time: 0.353 ms Execution Time: 3793.572 ms (8 rows)
postgres=# commit; COMMIT postgres=# select xact_commit from pg_stat_database where datname = 'postgres'; xact_commit ------------- 161 (1 row)