2010-09-20 22:08:53 +02:00
|
|
|
# contrib/pg_stat_statements/Makefile
|
2009-01-04 23:19:59 +01:00
|
|
|
|
|
|
|
MODULE_big = pg_stat_statements
|
2019-11-05 23:41:07 +01:00
|
|
|
OBJS = \
|
|
|
|
$(WIN32RES) \
|
|
|
|
pg_stat_statements.o
|
2009-01-04 23:19:59 +01:00
|
|
|
|
2011-02-14 02:06:41 +01:00
|
|
|
EXTENSION = pg_stat_statements
|
2022-04-08 06:12:07 +02:00
|
|
|
DATA = pg_stat_statements--1.4.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
2020-04-02 04:20:19 +02:00
|
|
|
pg_stat_statements--1.7--1.8.sql pg_stat_statements--1.6--1.7.sql \
|
2019-01-11 04:20:09 +01:00
|
|
|
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 \
|
2020-02-19 22:59:14 +01:00
|
|
|
pg_stat_statements--1.1--1.2.sql pg_stat_statements--1.0--1.1.sql
|
2014-07-14 20:07:52 +02:00
|
|
|
PGFILEDESC = "pg_stat_statements - execution statistics of SQL statements"
|
2011-02-14 02:06:41 +01:00
|
|
|
|
2015-07-09 02:44:22 +02:00
|
|
|
LDFLAGS_SL += $(filter -lm, $(LIBS))
|
|
|
|
|
2016-11-12 14:01:48 +01:00
|
|
|
REGRESS_OPTS = --temp-config $(top_srcdir)/contrib/pg_stat_statements/pg_stat_statements.conf
|
Refactor tests of pg_stat_statements for planning, utility and level tracking
pg_stat_statements.sql acts as the main file for all the core tests of
the module, but things have become complicated to follow over the years
as some of the sub-scenarios tested in this file rely on assumptions
that come from completely different areas of it, like a GUC setup or a
relation created previously. For example, row tracking for CTAS/COPY
was looking at the number of plans, which was not necessary, or level
tracking was mixed with checks on planner counts.
This commit refactors the tests of pg_stat_statements, by moving test
cases out of pg_stat_statements.sql into their own file, as of:
- Planning-related tests in planning.sql, for [re]plan counts and
top-level handling. These depend on pg_stat_statements.track_planning.
- Utilities in utility.sql (pg_stat_statements.track_utility), that
includes now the tests for:
-- Row tracking for CTAS, CREATE MATERIALIZED VIEW, COPY.
-- Basic utility statements.
-- SET statements.
- Tracking level, depending on pg_stat_statements.track. This part has
been looking at scenarios with DO blocks, PL functions and SQL
functions.
pg_stat_statements.sql (still named the same for now) still includes
some checks for role-level tracking and WAL generation metrics, that
ought to become independent in the long term for clarity.
While on it, this switches the order of the attributes when querying
pg_stat_statements, the query field becoming last. This makes much
easier the tracking of changes related to normalization, as queries are
the only variable-length attributes queried (unaligned mode would be one
extra choice, but that reduces the checks on the other fields).
Test scenarios and their results match exactly with what was happening
before this commit in terms of calls, number of plans, number of rows,
cached data or level tracking, so this has no effect on the coverage in
terms of what is produced by the reports in the table
pg_stat_statements. A follow-up patch will extend more the tests of
pg_stat_statements around utilities, so this split creates a foundation
for this purpose, without complicating more pg_stat_statements.sql.
Reviewed-by: Bertrand Drouvot
Discussion: https://postgr.es/m/Y+MRdEq9W9XVa2AB@paquier.xyz
2023-02-20 01:28:29 +01:00
|
|
|
REGRESS = pg_stat_statements utility level_tracking planning cleanup oldextversions
|
2016-11-14 23:53:07 +01:00
|
|
|
# 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
|
2016-11-12 14:01:48 +01:00
|
|
|
|
2009-01-04 23:19:59 +01:00
|
|
|
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
|