On Fri, Sep 17, 2021 at 3:08 AM Andrew Dunstan <and...@dunslane.net> wrote: > > So I tested it > out with a modified buildfarm client with this line added in the initdb > step where it's adding the extra_config to postgresql.conf: > > print $handle "shared_preload_libraries = 'pg_stat_statements'\n"; > > The good news is that it didn't actually find anything amiss.
That's something I also regularly do when working on patches, so I confirm that there's no problem with pg_stat_statements, at least to my knowledge. > The bad > news is that it generated a bunch of diffs along these lines: > > > EXPLAIN (verbose, costs off) SELECT * FROM functest_sri1(); > - QUERY PLAN > --------------------------------------- > + QUERY PLAN > +--------------------------------------- > Seq Scan on temp_func_test.functest3 > Output: functest3.a > -(2 rows) > + Query Identifier: 4255315482610697537 > +(3 rows) > > > ISTM there's probably a good case for suppressing the "Query Identifier" > lines if costs are off. The main reason for saying "costs off" is to > have predictable results, AFAICT, and clearly the query identifier is > not predictable. It would be a trivial change in explain.c. Another > possibility would be to add another option to supporess the query > identifier separately, but that seems like overkill. Yes that's something that I also find annoying. I'm not sure if removing the queryid when costs is disabled is the best way forward, but I have no strong objection. Note that we do have a test in explain.sql to make sure that a queryid is computed and outputed in explain plans, but it doesn't rely on costs being disabled so that wouldn't be a problem.