-hackers, So in doing some recent work on pg_stat_statements, I notice that while the regression test still passes on HEAD, it appears that 4f0b096 (per git bisect) changed/broke how this works compared to historical versions.
Essentially, when doing a fresh install of pg_stat_statements on a new fresh db (outside of the regression framework), it's not returning any rows from the view. I didn't see any related documentation changes, so as far as I know, this should still be recording all statements as per normal. My full steps to reproduce from a clean Centos 7 install are attached. I have also been able to reproduce this on OS X and Fedora 33. The TL;DR is: CREATE EXTENSION pg_stat_statements; CREATE TABLE foo (a int, b text); INSERT INTO foo VALUES (1,'a'); SELECT * FROM foo; SELECT * FROM pg_stat_statements; -- returns nothing Settings for pg_stat_statements: postgres=# select name, setting from pg_settings where name like 'pg_stat_statements%'; name | setting -----------------------------------+--------- pg_stat_statements.max | 5000 pg_stat_statements.save | on pg_stat_statements.track | top pg_stat_statements.track_planning | off pg_stat_statements.track_utility | on (5 rows) Is this an expected change, or is this in fact broken? In previous revisions, this was showing the INSERT and SELECT at the very least. I'm unclear as to why the regression test is still passing, so want to verify that I'm not doing something wrong in the testing. Best, David
#!/bin/bash -e sudo yum install -y git sudo yum groupinstall -y "Development Tools" sudo yum install -y readline-devel zlib-devel 'perl(IPC::Run)' 'perl(Test::More)' 'perl(Time::HiRes)' mkdir -p ~/Checkouts cd ~/Checkouts git clone https://github.com/postgres/postgres postgresql cd ~/Checkouts/postgresql git checkout 4f0b096 make distclean || true ./configure --enable-cassert --enable-debug CFLAGS="-ggdb -O0 -g3 -fno-omit-frame-pointer" --enable-tap-tests make -j10 && \ ( \ cd contrib/pg_stat_statements/; \ make check \ ) cd tmp_install/usr/local/pgsql export PGUSER=postgres export PGHOST=/tmp/ export LD_LIBRARY_PATH=./lib:$LD_LIBRARY_PATH PATH=$HOME/tmp_install/usr/local/pgsql:$PATH bin/initdb -D data -U postgres bin/pg_ctl -D data -l logfile start bin/psql -c 'ALTER SYSTEM SET shared_preload_libraries = $$pg_stat_statements$$' bin/pg_ctl -D data -l logfile restart bin/psql <<EOF CREATE EXTENSION pg_stat_statements; CREATE TABLE foo (a int, b text); INSERT INTO foo VALUES (1,'a'); SELECT * FROM foo; SELECT * FROM pg_stat_statements; SELECT name, setting FROM pg_settings WHERE name LIKE 'pg_stat_statements%'; EOF