|
|
|
|
# contrib/pg_stat_statements/Makefile
|
|
|
|
|
|
|
|
|
|
MODULE_big = pg_stat_statements
|
|
|
|
|
OBJS = \
|
|
|
|
|
$(WIN32RES) \
|
|
|
|
|
pg_stat_statements.o
|
|
|
|
|
|
|
|
|
|
EXTENSION = pg_stat_statements
|
|
|
|
|
DATA = pg_stat_statements--1.4.sql \
|
|
|
|
|
pg_stat_statements--1.10--1.11.sql \
|
|
|
|
|
pg_stat_statements--1.9--1.10.sql pg_stat_statements--1.8--1.9.sql \
|
Allow pg_stat_statements to track planning statistics.
This commit makes pg_stat_statements support new GUC
pg_stat_statements.track_planning. If this option is enabled,
pg_stat_statements tracks the planning statistics of the statements,
e.g., the number of times the statement was planned, the total time
spent planning the statement, etc. This feature is useful to check
the statements that it takes a long time to plan. Previously since
pg_stat_statements tracked only the execution statistics, we could
not use that for the purpose.
The planning and execution statistics are stored at the end of
each phase separately. So there are not always one-to-one relationship
between them. For example, if the statement is successfully planned
but fails in the execution phase, only its planning statistics are stored.
This may cause the users to be able to see different pg_stat_statements
results from the previous version. To avoid this,
pg_stat_statements.track_planning needs to be disabled.
This commit bumps the version of pg_stat_statements to 1.8
since it changes the definition of pg_stat_statements function.
Author: Julien Rouhaud, Pascal Legrand, Thomas Munro, Fujii Masao
Reviewed-by: Sergei Kornilov, Tomas Vondra, Yoshikazu Imai, Haribabu Kommi, Tom Lane
Discussion: https://postgr.es/m/CAHGQGwFx_=DO-Gu-MfPW3VQ4qC7TfVdH2zHmvZfrGv6fQ3D-Tw@mail.gmail.com
Discussion: https://postgr.es/m/CAEepm=0e59Y_6Q_YXYCTHZkqOc6H2pJ54C_Xe=VFu50Aqqp_sA@mail.gmail.com
Discussion: https://postgr.es/m/DB6PR0301MB21352F6210E3B11934B0DCC790B00@DB6PR0301MB2135.eurprd03.prod.outlook.com
6 years ago
|
|
|
pg_stat_statements--1.7--1.8.sql pg_stat_statements--1.6--1.7.sql \
|
|
|
|
|
pg_stat_statements--1.5--1.6.sql pg_stat_statements--1.4--1.5.sql \
|
|
|
|
|
pg_stat_statements--1.3--1.4.sql pg_stat_statements--1.2--1.3.sql \
|
|
|
|
|
pg_stat_statements--1.1--1.2.sql pg_stat_statements--1.0--1.1.sql
|
|
|
|
|
PGFILEDESC = "pg_stat_statements - execution statistics of SQL statements"
|
|
|
|
|
|
|
|
|
|
LDFLAGS_SL += $(filter -lm, $(LIBS))
|
|
|
|
|
|
|
|
|
|
REGRESS_OPTS = --temp-config $(top_srcdir)/contrib/pg_stat_statements/pg_stat_statements.conf
|
|
|
|
|
REGRESS = select dml cursors utility level_tracking planning \
|
Add missing query ID reporting in extended query protocol
This commit adds query ID reports for two code paths when processing
extended query protocol messages:
- When receiving a bind message, setting it to the first Query retrieved
from a cached cache.
- When receiving an execute message, setting it to the first PlannedStmt
stored in a portal.
An advantage of this method is that this is able to cover all the types
of portals handled in the extended query protocol, particularly these
two when the report done in ExecutorStart() is not enough (neither is an
addition in ExecutorRun(), actually, for the second point):
- Multiple execute messages, with multiple ExecutorRun().
- Portal with execute/fetch messages, like a query with a RETURNING
clause and a fetch size that stores the tuples in a first execute
message going though ExecutorStart() and ExecuteRun(), followed by one
or more execute messages doing only fetches from the tuplestore created
in the first message. This corresponds to the case where
execute_is_fetch is set, for example.
Note that the query ID reporting done in ExecutorStart() is still
necessary, as an EXECUTE requires it. Query ID reporting is optimistic
and more calls to pgstat_report_query_id() don't matter as the first
report takes priority except if the report is forced. The comment in
ExecutorStart() is adjusted to reflect better the reality with the
extended query protocol.
The test added in pg_stat_statements is a courtesy of Robert Haas. This
uses psql's \bind metacommand, hence this part is backpatched down to
v16.
Reported-by: Kaido Vaikla, Erik Wienhold
Author: Sami Imseih
Reviewed-by: Jian He, Andrei Lepikhov, Michael Paquier
Discussion: https://postgr.es/m/CA+427g8DiW3aZ6pOpVgkPbqK97ouBdf18VLiHFesea2jUk3XoQ@mail.gmail.com
Discussion: https://postgr.es/m/CA+TgmoZxtnf_jZ=VqBSyaU8hfUkkwoJCJ6ufy4LGpXaunKrjrg@mail.gmail.com
Discussion: https://postgr.es/m/1391613709.939460.1684777418070@office.mailbox.org
Backpatch-through: 14
1 year ago
|
|
|
user_activity wal entry_timestamp extended cleanup \
|
|
|
|
|
oldextversions
|
|
|
|
|
# Disabled because these tests require "shared_preload_libraries=pg_stat_statements",
|
|
|
|
|
# which typical installcheck users do not have (e.g. buildfarm clients).
|
|
|
|
|
NO_INSTALLCHECK = 1
|
|
|
|
|
|
|
|
|
|
TAP_TESTS = 1
|
|
|
|
|
|
|
|
|
|
ifdef USE_PGXS
|
|
|
|
|
PG_CONFIG = pg_config
|
|
|
|
|
PGXS := $(shell $(PG_CONFIG) --pgxs)
|
|
|
|
|
include $(PGXS)
|
|
|
|
|
else
|
|
|
|
|
subdir = contrib/pg_stat_statements
|
|
|
|
|
top_builddir = ../..
|
|
|
|
|
include $(top_builddir)/src/Makefile.global
|
|
|
|
|
include $(top_srcdir)/contrib/contrib-global.mk
|
|
|
|
|
endif
|