pg.ddx.io  pgsql-hackers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Erica Zhang <ericazhangy@qq.com>
To: pgsql-hackers <pgsql-hackers@postgresql.org>
Subject: Add some tests for pg_stat_statements compatibility verification under contrib
Date: Tue, 9 Mar 2021 11:35:14 +0800
Message-ID: <tencent_BBA974AFF61379F2345E782FD6C55891950A@qq.com> (raw)

Hi All,
On the master branch, it is possible to install multiple versions of pg_stat_statements with CREATE EXTENSION, but all the tests in sql/ on look at the latest version available, without testing past compatibility. 

Since we support to install lowest version 1.4 currently, add some tests to verify compatibility, upgrade from lower versions of pg_stat_statements.

Attachments:

add_test_for_pg_stat_statements.patch (application/octet-stream, 7.2K) download diff --git a/contrib/pg_stat_statements/expected/pg_stat_statements.out b/contrib/pg_stat_statements/expected/pg_stat_statements.out index 16158525ca..cde6f29444 100644 --- a/contrib/pg_stat_statements/expected/pg_stat_statements.out +++ b/contrib/pg_stat_statements/expected/pg_stat_statements.out @@ -877,3 +877,137 @@ SELECT dealloc FROM pg_stat_statements_info; (1 row) DROP EXTENSION pg_stat_statements; +-- +-- Verify compatible with older versions. +-- Currently the lowest version from which upgrade is supported is 1.4. +-- +CREATE EXTENSION pg_stat_statements with version '1.4'; +SELECT * FROM pg_available_extensions WHERE name = 'pg_stat_statements' and installed_version = '1.4'; + name | default_version | installed_version | comment +--------------------+-----------------+-------------------+------------------------------------------------------------------------ + pg_stat_statements | 1.9 | 1.4 | track planning and execution statistics of all SQL statements executed +(1 row) + +SELECT pg_stat_statements_reset(); + pg_stat_statements_reset +-------------------------- + +(1 row) + +SELECT count(query) FROM pg_stat_statements; + count +------- + 2 +(1 row) + +--- +--- Upgrade extension to 1.5 +--- +AlTER EXTENSION pg_stat_statements update to '1.5'; +SELECT * FROM pg_available_extensions WHERE name = 'pg_stat_statements' and installed_version = '1.5'; + name | default_version | installed_version | comment +--------------------+-----------------+-------------------+------------------------------------------------------------------------ + pg_stat_statements | 1.9 | 1.5 | track planning and execution statistics of all SQL statements executed +(1 row) + +SELECT pg_stat_statements_reset(); + pg_stat_statements_reset +-------------------------- + +(1 row) + +SELECT count(query) FROM pg_stat_statements; + count +------- + 2 +(1 row) + +--- +--- Upgrade extension to 1.6 +--- +AlTER EXTENSION pg_stat_statements update to '1.6'; +SELECT * FROM pg_available_extensions WHERE name = 'pg_stat_statements' and installed_version = '1.6'; + name | default_version | installed_version | comment +--------------------+-----------------+-------------------+------------------------------------------------------------------------ + pg_stat_statements | 1.9 | 1.6 | track planning and execution statistics of all SQL statements executed +(1 row) + +SELECT pg_stat_statements_reset(); + pg_stat_statements_reset +-------------------------- + +(1 row) + +SELECT count(query) FROM pg_stat_statements; + count +------- + 2 +(1 row) + +--- +--- Upgrade extension to 1.7 +--- +AlTER EXTENSION pg_stat_statements update to '1.7'; +SELECT * FROM pg_available_extensions WHERE name = 'pg_stat_statements' and installed_version = '1.7'; + name | default_version | installed_version | comment +--------------------+-----------------+-------------------+------------------------------------------------------------------------ + pg_stat_statements | 1.9 | 1.7 | track planning and execution statistics of all SQL statements executed +(1 row) + +SELECT pg_stat_statements_reset(); + pg_stat_statements_reset +-------------------------- + +(1 row) + +SELECT count(query) FROM pg_stat_statements; + count +------- + 2 +(1 row) + +--- +--- Upgrade extension to 1.8 +--- +AlTER EXTENSION pg_stat_statements update to '1.8'; +SELECT * FROM pg_available_extensions WHERE name = 'pg_stat_statements' and installed_version = '1.8'; + name | default_version | installed_version | comment +--------------------+-----------------+-------------------+------------------------------------------------------------------------ + pg_stat_statements | 1.9 | 1.8 | track planning and execution statistics of all SQL statements executed +(1 row) + +SELECT pg_stat_statements_reset(); + pg_stat_statements_reset +-------------------------- + +(1 row) + +SELECT count(plans) FROM pg_stat_statements; + count +------- + 2 +(1 row) + +--- +--- Upgrade extension to 1.9 +--- +AlTER EXTENSION pg_stat_statements update to '1.9'; +SELECT * FROM pg_available_extensions WHERE name = 'pg_stat_statements' and installed_version = '1.9'; + name | default_version | installed_version | comment +--------------------+-----------------+-------------------+------------------------------------------------------------------------ + pg_stat_statements | 1.9 | 1.9 | track planning and execution statistics of all SQL statements executed +(1 row) + +SELECT pg_stat_statements_reset(); + pg_stat_statements_reset +-------------------------- + +(1 row) + +SELECT dealloc FROM pg_stat_statements_info; + dealloc +--------- + 0 +(1 row) + +DROP EXTENSION pg_stat_statements; diff --git a/contrib/pg_stat_statements/sql/pg_stat_statements.sql b/contrib/pg_stat_statements/sql/pg_stat_statements.sql index 6f58d9d0f6..98d8a051b6 100644 --- a/contrib/pg_stat_statements/sql/pg_stat_statements.sql +++ b/contrib/pg_stat_statements/sql/pg_stat_statements.sql @@ -365,3 +365,54 @@ SELECT pg_stat_statements_reset(); SELECT dealloc FROM pg_stat_statements_info; DROP EXTENSION pg_stat_statements; + +-- +-- Verify compatible with older versions. +-- Currently the lowest version from which upgrade is supported is 1.4. +-- +CREATE EXTENSION pg_stat_statements with version '1.4'; +SELECT * FROM pg_available_extensions WHERE name = 'pg_stat_statements' and installed_version = '1.4'; +SELECT pg_stat_statements_reset(); +SELECT count(query) FROM pg_stat_statements; + +--- +--- Upgrade extension to 1.5 +--- +AlTER EXTENSION pg_stat_statements update to '1.5'; +SELECT * FROM pg_available_extensions WHERE name = 'pg_stat_statements' and installed_version = '1.5'; +SELECT pg_stat_statements_reset(); +SELECT count(query) FROM pg_stat_statements; + +--- +--- Upgrade extension to 1.6 +--- +AlTER EXTENSION pg_stat_statements update to '1.6'; +SELECT * FROM pg_available_extensions WHERE name = 'pg_stat_statements' and installed_version = '1.6'; +SELECT pg_stat_statements_reset(); +SELECT count(query) FROM pg_stat_statements; + +--- +--- Upgrade extension to 1.7 +--- +AlTER EXTENSION pg_stat_statements update to '1.7'; +SELECT * FROM pg_available_extensions WHERE name = 'pg_stat_statements' and installed_version = '1.7'; +SELECT pg_stat_statements_reset(); +SELECT count(query) FROM pg_stat_statements; + +--- +--- Upgrade extension to 1.8 +--- +AlTER EXTENSION pg_stat_statements update to '1.8'; +SELECT * FROM pg_available_extensions WHERE name = 'pg_stat_statements' and installed_version = '1.8'; +SELECT pg_stat_statements_reset(); +SELECT count(plans) FROM pg_stat_statements; + +--- +--- Upgrade extension to 1.9 +--- +AlTER EXTENSION pg_stat_statements update to '1.9'; +SELECT * FROM pg_available_extensions WHERE name = 'pg_stat_statements' and installed_version = '1.9'; +SELECT pg_stat_statements_reset(); +SELECT dealloc FROM pg_stat_statements_info; + +DROP EXTENSION pg_stat_statements;

view thread (8+ messages)  latest in thread

Message-ID: <tencent_BBA974AFF61379F2345E782FD6C55891950A@qq.com>
Permalink:  ../tencent_BBA974AFF61379F2345E782FD6C55891950A@qq.com/
Also on:    postgresql.org/message-id/tencent_BBA974AFF61379F2345E782FD6C55891950A@qq.com

 ·  · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-hackers@postgresql.org
  Cc: ericazhangy@qq.com
  Subject: Re: Add some tests for pg_stat_statements compatibility verification under contrib
  In-Reply-To: <tencent_BBA974AFF61379F2345E782FD6C55891950A@qq.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox