1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-27 12:41:57 +03:00

Add NOT NULL checking of pg_stat_statements_reset() in tests

This is preliminary patch.  It adds NOT NULL checking for the result of
pg_stat_statements_reset() function. It is needed for upcoming patch
"Track statement entry timestamp" that will change the result type of
this function to the timestamp of a reset performed.

Discussion: https://postgr.es/m/flat/72e80e7b160a6eb189df9ef6f068cce3765d37f8.camel%40moonset.ru
Author: Andrei Zubkov
Reviewed-by: Julien Rouhaud, Hayato Kuroda, Yuki Seino, Chengxi Sun
Reviewed-by: Anton Melnikov, Darren Rush, Michael Paquier, Sergei Kornilov
Reviewed-by: Alena Rybakina, Andrei Lepikhov
This commit is contained in:
Alexander Korotkov
2023-11-27 02:50:59 +02:00
parent 01eca6a913
commit 6ab1dbd26b
16 changed files with 317 additions and 312 deletions

View File

@ -4,7 +4,7 @@
-- These tests require track_utility to be enabled.
SET pg_stat_statements.track_utility = TRUE;
SELECT pg_stat_statements_reset();
SELECT pg_stat_statements_reset() IS NOT NULL AS t;
-- Tables, indexes, triggers
CREATE TEMP TABLE tab_stats (a int, b char(20));
@ -18,7 +18,7 @@ DROP TABLE IF EXISTS tab_stats \;
DROP TABLE IF EXISTS tab_stats \;
Drop Table If Exists tab_stats \;
SELECT calls, rows, query FROM pg_stat_statements ORDER BY query COLLATE "C";
SELECT pg_stat_statements_reset();
SELECT pg_stat_statements_reset() IS NOT NULL AS t;
-- Partitions
CREATE TABLE pt_stats (a int, b int) PARTITION BY range (a);
@ -83,7 +83,7 @@ CREATE STATISTICS tab_expr_stats_1 (mcv) ON a, (2*a), (3*b) FROM tab_expr_stats;
DROP TABLE tab_expr_stats;
SELECT calls, rows, query FROM pg_stat_statements ORDER BY query COLLATE "C";
SELECT pg_stat_statements_reset();
SELECT pg_stat_statements_reset() IS NOT NULL AS t;
-- Transaction statements
BEGIN;
@ -113,7 +113,7 @@ COMMIT;
BEGIN TRANSACTION NOT DEFERRABLE, READ ONLY, READ WRITE, DEFERRABLE;
COMMIT;
SELECT calls, rows, query FROM pg_stat_statements ORDER BY query COLLATE "C";
SELECT pg_stat_statements_reset();
SELECT pg_stat_statements_reset() IS NOT NULL AS t;
-- Two-phase transactions
BEGIN;
@ -123,7 +123,7 @@ BEGIN;
PREPARE TRANSACTION 'stat_trans2';
ROLLBACK PREPARED 'stat_trans2';
SELECT calls, rows, query FROM pg_stat_statements ORDER BY query COLLATE "C";
SELECT pg_stat_statements_reset();
SELECT pg_stat_statements_reset() IS NOT NULL AS t;
-- Savepoints
BEGIN;
@ -140,7 +140,7 @@ ROLLBACK TO sp1;
RELEASE SAVEPOINT sp1;
COMMIT;
SELECT calls, rows, query FROM pg_stat_statements ORDER BY query COLLATE "C";
SELECT pg_stat_statements_reset();
SELECT pg_stat_statements_reset() IS NOT NULL AS t;
-- EXPLAIN statements
-- A Query is used, normalized by the query jumbling.
@ -185,7 +185,7 @@ BEGIN
i2 := i;
i3 := i3 + i;
END; $$ LANGUAGE plpgsql;
SELECT pg_stat_statements_reset();
SELECT pg_stat_statements_reset() IS NOT NULL AS t;
CALL sum_one(3);
CALL sum_one(199);
CALL sum_two(1,1);
@ -198,7 +198,7 @@ SELECT calls, rows, query FROM pg_stat_statements ORDER BY query COLLATE "C";
-- COPY
CREATE TABLE copy_stats (a int, b int);
SELECT pg_stat_statements_reset();
SELECT pg_stat_statements_reset() IS NOT NULL AS t;
-- Some queries with A_Const nodes.
COPY (SELECT 1) TO STDOUT;
COPY (SELECT 2) TO STDOUT;
@ -210,7 +210,7 @@ COPY (DELETE FROM copy_stats WHERE a = 1 RETURNING *) TO STDOUT;
SELECT calls, rows, query FROM pg_stat_statements ORDER BY query COLLATE "C";
DROP TABLE copy_stats;
SELECT pg_stat_statements_reset();
SELECT pg_stat_statements_reset() IS NOT NULL AS t;
-- CREATE TABLE AS
-- SELECT queries are normalized, creating matching query IDs.
@ -227,7 +227,7 @@ CREATE TABLE ctas_stats_2 AS
FROM generate_series(1, 5) AS tab(a) WHERE a < 4 AND a > 1;
DROP TABLE ctas_stats_2;
SELECT calls, rows, query FROM pg_stat_statements ORDER BY query COLLATE "C";
SELECT pg_stat_statements_reset();
SELECT pg_stat_statements_reset() IS NOT NULL AS t;
-- CREATE MATERIALIZED VIEW
-- SELECT queries are normalized, creating matching query IDs.
@ -240,7 +240,7 @@ CREATE MATERIALIZED VIEW matview_stats_1 AS
FROM generate_series(1, 5) AS tab(a) WHERE a < 4 AND a > 3;
DROP MATERIALIZED VIEW matview_stats_1;
SELECT calls, rows, query FROM pg_stat_statements ORDER BY query COLLATE "C";
SELECT pg_stat_statements_reset();
SELECT pg_stat_statements_reset() IS NOT NULL AS t;
-- CREATE VIEW
CREATE VIEW view_stats_1 AS
@ -252,7 +252,7 @@ CREATE VIEW view_stats_1 AS
FROM generate_series(1, 5) AS tab(a) WHERE a < 4 AND a > 3;
DROP VIEW view_stats_1;
SELECT calls, rows, query FROM pg_stat_statements ORDER BY query COLLATE "C";
SELECT pg_stat_statements_reset();
SELECT pg_stat_statements_reset() IS NOT NULL AS t;
-- Domains
CREATE DOMAIN domain_stats AS int CHECK (VALUE > 0);
@ -260,7 +260,7 @@ ALTER DOMAIN domain_stats SET DEFAULT '3';
ALTER DOMAIN domain_stats ADD CONSTRAINT higher_than_one CHECK (VALUE > 1);
DROP DOMAIN domain_stats;
SELECT calls, rows, query FROM pg_stat_statements ORDER BY query COLLATE "C";
SELECT pg_stat_statements_reset();
SELECT pg_stat_statements_reset() IS NOT NULL AS t;
-- Execution statements
SELECT 1 as a;
@ -273,7 +273,7 @@ DEALLOCATE PREPARE stat_select;
DEALLOCATE ALL;
DEALLOCATE PREPARE ALL;
SELECT calls, rows, query FROM pg_stat_statements ORDER BY query COLLATE "C";
SELECT pg_stat_statements_reset();
SELECT pg_stat_statements_reset() IS NOT NULL AS t;
-- SET statements.
-- These use two different strings, still they count as one entry.
@ -299,7 +299,7 @@ RESET SESSION AUTHORIZATION;
COMMIT;
SELECT calls, rows, query FROM pg_stat_statements ORDER BY query COLLATE "C";
SELECT pg_stat_statements_reset();
SELECT pg_stat_statements_reset() IS NOT NULL AS t;
--
-- Track the total number of rows retrieved or affected by the utility
@ -328,4 +328,4 @@ DROP MATERIALIZED VIEW pgss_matv;
DROP TABLE pgss_ctas;
DROP TABLE pgss_select_into;
SELECT pg_stat_statements_reset();
SELECT pg_stat_statements_reset() IS NOT NULL AS t;