postgresql/contrib
Michael Paquier 5d4298e75f pg_stat_statements: Avoid some locking during PGSS entry scans
A single PGSS entry's spinlock is used to be able to modify "counters"
without holding pgss->lock exclusively, as mentioned at the top of
pg_stat_statements.c and within pgssEntry.

Within a single pgssEntry, stats_since and minmax_stats_since are never
modified without holding pgss->lock exclusively, so there is no need to
hold an entry's spinlock when reading stats_since and
minmax_stats_since, as done when scanning all the PGSS entries for
function calls of pg_stat_statements().

This also restores the consistency between the code and the comments
about the entry's spinlock usage.  This change is a performance
improvement (it can be argued that this is a logic bug), so there is no
need for a backpatch.  This saves two instructions from being read while
holding an entry's spinlock.

Author: Karina Litskevich
Reviewed-by: Michael Paquier, wenhui qiu
Discussion: https://postgr.es/m/CACiT8ibhCmzbcOxM0v4pRLH3abk-95LPkt7_uC2JMP+miPjxsg@mail.gmail.com
2024-11-11 09:02:30 +09:00
..
amcheck Remove unused #include's from contrib, pl, test .c files 2024-10-28 08:02:17 +01:00
auth_delay Remove unused #include's from contrib, pl, test .c files 2024-10-28 08:02:17 +01:00
auto_explain Remove unused #include's from contrib, pl, test .c files 2024-10-28 08:02:17 +01:00
basebackup_to_shell Update copyright for 2024 2024-01-03 20:49:05 -05:00
basic_archive Remove unused #include's from contrib, pl, test .c files 2024-10-28 08:02:17 +01:00
bloom Remove unused #include's from contrib, pl, test .c files 2024-10-28 08:02:17 +01:00
bool_plperl Update copyright for 2024 2024-01-03 20:49:05 -05:00
btree_gin Remove unused #include's from contrib, pl, test .c files 2024-10-28 08:02:17 +01:00
btree_gist Remove unused #include's from contrib, pl, test .c files 2024-10-28 08:02:17 +01:00
citext Remove unused #include's from contrib, pl, test .c files 2024-10-28 08:02:17 +01:00
cube Include bison header files into implementation files 2024-08-02 10:25:11 +02:00
dblink Don't bother checking the result of SPI_connect[_ext] anymore. 2024-09-09 12:18:34 -04:00
dict_int Update copyright for 2024 2024-01-03 20:49:05 -05:00
dict_xsyn Remove unused #include's from contrib, pl, test .c files 2024-10-28 08:02:17 +01:00
earthdistance Update copyright for 2024 2024-01-03 20:49:05 -05:00
file_fdw file_fdw: Add on_error and log_verbosity options to file_fdw. 2024-10-03 15:57:32 +09:00
fuzzystrmatch Remove unused #include's from contrib, pl, test .c files 2024-10-28 08:02:17 +01:00
hstore Optimize escaping of JSON strings 2024-07-27 23:46:07 +12:00
hstore_plperl Update copyright for 2024 2024-01-03 20:49:05 -05:00
hstore_plpython Update copyright for 2024 2024-01-03 20:49:05 -05:00
intagg Update copyright for 2024 2024-01-03 20:49:05 -05:00
intarray Remove unused #include's from contrib, pl, test .c files 2024-10-28 08:02:17 +01:00
isn Remove unused #include's from contrib, pl, test .c files 2024-10-28 08:02:17 +01:00
jsonb_plperl Update copyright for 2024 2024-01-03 20:49:05 -05:00
jsonb_plpython Update copyright for 2024 2024-01-03 20:49:05 -05:00
lo Remove unused #include's from contrib, pl, test .c files 2024-10-28 08:02:17 +01:00
ltree Remove unused #include's from contrib, pl, test .c files 2024-10-28 08:02:17 +01:00
ltree_plpython Update copyright for 2024 2024-01-03 20:49:05 -05:00
oid2name Apply more quoting to GUC names in messages 2024-09-04 13:50:44 +09:00
pageinspect Remove unused #include's from contrib, pl, test .c files 2024-10-28 08:02:17 +01:00
passwordcheck Update copyright for 2024 2024-01-03 20:49:05 -05:00
pg_buffercache Add pg_buffercache_evict() function for testing. 2024-04-08 16:23:40 +12:00
pg_freespacemap Remove unused #include's from contrib, pl, test .c files 2024-10-28 08:02:17 +01:00
pg_logicalinspect Add contrib/pg_logicalinspect. 2024-10-14 17:22:02 -07:00
pg_prewarm Remove unused #include's from contrib, pl, test .c files 2024-10-28 08:02:17 +01:00
pg_stat_statements pg_stat_statements: Avoid some locking during PGSS entry scans 2024-11-11 09:02:30 +09:00
pg_surgery Remove unused #include's from contrib, pl, test .c files 2024-10-28 08:02:17 +01:00
pg_trgm Use new overflow-safe integer comparison functions. 2024-02-16 14:05:36 -06:00
pg_visibility Remove unused #include's from contrib, pl, test .c files 2024-10-28 08:02:17 +01:00
pg_walinspect Assign error codes where missing for user-facing failures 2024-07-04 09:48:40 +09:00
pgcrypto Remove unused #include's from contrib, pl, test .c files 2024-10-28 08:02:17 +01:00
pgrowlocks Remove unused #include's from contrib, pl, test .c files 2024-10-28 08:02:17 +01:00
pgstattuple Remove unused #include's from contrib, pl, test .c files 2024-10-28 08:02:17 +01:00
postgres_fdw Remove unused #include's from contrib, pl, test .c files 2024-10-28 08:02:17 +01:00
seg Use generateClonedIndexStmt to propagate CREATE INDEX to partitions. 2024-10-05 14:46:44 -04:00
sepgsql Add pg_constraint rows for not-null constraints 2024-11-08 13:28:48 +01:00
spi Remove unused #include's from contrib, pl, test .c files 2024-10-28 08:02:17 +01:00
sslinfo Revert "Add notBefore and notAfter to SSL cert info display" 2024-03-22 22:58:41 +01:00
start-scripts Remove gratuitous references to postmaster program 2023-01-26 10:48:32 +01:00
tablefunc Remove unused #include's from contrib, pl, test .c files 2024-10-28 08:02:17 +01:00
tcn Update copyright for 2024 2024-01-03 20:49:05 -05:00
test_decoding Add pg_constraint rows for not-null constraints 2024-11-08 13:28:48 +01:00
tsm_system_rows Remove unused #include's from contrib, pl, test .c files 2024-10-28 08:02:17 +01:00
tsm_system_time Remove unused #include's from contrib, pl, test .c files 2024-10-28 08:02:17 +01:00
unaccent Remove unused #include's from contrib, pl, test .c files 2024-10-28 08:02:17 +01:00
uuid-ossp Make the order of the header file includes consistent 2024-03-13 15:07:00 +01:00
vacuumlo Apply more quoting to GUC names in messages 2024-09-04 13:50:44 +09:00
xml2 Remove unused #include's from contrib, pl, test .c files 2024-10-28 08:02:17 +01:00
contrib-global.mk Respect TEMP_CONFIG when pg_regress_check and friends are called 2016-02-27 12:28:21 -05:00
Makefile Add contrib/pg_logicalinspect. 2024-10-14 17:22:02 -07:00
meson.build Add contrib/pg_logicalinspect. 2024-10-14 17:22:02 -07:00
README Rename 'gmake' to 'make' in docs and recommended commands 2014-02-12 17:29:19 -05:00

The PostgreSQL contrib tree
---------------------------

This subtree contains porting tools, analysis utilities, and plug-in
features that are not part of the core PostgreSQL system, mainly
because they address a limited audience or are too experimental to be
part of the main source tree.  This does not preclude their
usefulness.

User documentation for each module appears in the main SGML
documentation.

When building from the source distribution, these modules are not
built automatically, unless you build the "world" target.  You can
also build and install them all by running "make all" and "make
install" in this directory; or to build and install just one selected
module, do the same in that module's subdirectory.

Some directories supply new user-defined functions, operators, or
types.  To make use of one of these modules, after you have installed
the code you need to register the new SQL objects in the database
system by executing a CREATE EXTENSION command.  In a fresh database,
you can simply do

    CREATE EXTENSION module_name;

See the PostgreSQL documentation for more information about this
procedure.