| From: | Alexander Lakhin <exclusion(at)gmail(dot)com> |
|---|---|
| To: | Michael Paquier <michael(at)paquier(dot)xyz>, Sami Imseih <samimseih(at)gmail(dot)com> |
| Cc: | PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
| Subject: | Re: pg_stat_statements: add missing tests for nesting_level |
| Date: | 2026-01-25 06:00:00 |
| Message-ID: | 82dd02bb-4e0f-40ad-a60b-baa1763ff0bd@gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Hello Michael and Sami,
21.01.2026 02:41, Michael Paquier wrote:
> On Tue, Jan 20, 2026 at 06:08:14PM -0600, Sami Imseih wrote:
>> While looking at pg_stat_statements nesting_level, I realized that there
>> are missing nesting_level tests for pgss_planner and pgss_ExecutorFinish.
>> That is, if you remove nesting_level++ and nesting_level-- in those 2 hooks,
>> the tests will still succeed.
>>
>> For pgss_planner the nesting_level updates missing tests are the ones
>> when track_planning is enabled.
>>
>> Attached is a quick patch to add coverage.
> Confirmed these two deficiencies, nice catch. If one does the same
> removal of the nesting level calculation in other code paths like
> pgss_ExecutorRun(), one get complaints. Will see to get this addition
> done.
Two buildfarm animals [1], [2] say that that addition is incompatible with
the CLOBBER_CACHE_ALWAYS mode:
not ok 5 - level_tracking 52571 ms
diff -U3 /home/buildfarm/avocet/buildroot/HEAD/pgsql.build/contrib/pg_stat_statements/expected/level_tracking.out
/home/buildfarm/avocet/buildroot/HEAD/pgsql.build/contrib/pg_stat_statements/results/level_tracking.out
--- /home/buildfarm/avocet/buildroot/HEAD/pgsql.build/contrib/pg_stat_statements/expected/level_tracking.out 2026-01-22
01:59:12.213054121 +0100
+++ /home/buildfarm/avocet/buildroot/HEAD/pgsql.build/contrib/pg_stat_statements/results/level_tracking.out 2026-01-22
05:24:17.363666155 +0100
@@ -1560,7 +1560,7 @@
toplevel | calls | rows | plans | query
----------+-------+------+-------+--------------------------------------------------------------------
t | 2 | 2 | 2 | SELECT PLUS_THREE($1)
- f | 2 | 2 | 2 | SELECT i + 3 LIMIT 1
+ f | 2 | 2 | 2 | SELECT i + $2 LIMIT $3
t | 1 | 1 | 0 | SELECT pg_stat_statements_reset() IS NOT NULL AS t
t | 0 | 0 | 1 | SELECT toplevel, calls, rows, plans, query FROM pg_stat_statements+
| | | | ORDER BY query COLLATE "C"
I can reproduce this locally with no extra tricks. Could you please adjust
the test for this mode?
[1] https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=avocet&dt=2026-01-22%2000%3A58%3A36
[2] https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=trilobite&dt=2026-01-24%2023%3A10%3A13
Best regards,
Alexander
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Junwang Zhao | 2026-01-25 06:48:15 | [PATCH] Replace COUNT(NULL) with '0'::bigint |
| Previous Message | Meng Zhang | 2026-01-25 04:09:27 | Fix a reference error for window functions: In the function 'find_window_functions', the deduplication logic should be removed |