mirror of
https://github.com/postgres/postgres.git
synced 2025-06-13 07:41:39 +03:00
pg_stat_statements: Add tests with extended query protocol
There are currently no tests in the tree checking that queries using the extended query protocol are able to map with their query ID. This can be achieved for some paths of the extended query protocol with the psql meta-commands \bind or \bind_named, so let's add some tests based on both. I have found that to be a useful addition while working on a different issue. Discussion: https://postgr.es/m/ZuEt6MOEBSlifBfn@paquier.xyz
This commit is contained in:
@ -19,7 +19,7 @@ LDFLAGS_SL += $(filter -lm, $(LIBS))
|
|||||||
|
|
||||||
REGRESS_OPTS = --temp-config $(top_srcdir)/contrib/pg_stat_statements/pg_stat_statements.conf
|
REGRESS_OPTS = --temp-config $(top_srcdir)/contrib/pg_stat_statements/pg_stat_statements.conf
|
||||||
REGRESS = select dml cursors utility level_tracking planning \
|
REGRESS = select dml cursors utility level_tracking planning \
|
||||||
user_activity wal entry_timestamp privileges cleanup \
|
user_activity wal entry_timestamp privileges extended cleanup \
|
||||||
oldextversions
|
oldextversions
|
||||||
# Disabled because these tests require "shared_preload_libraries=pg_stat_statements",
|
# Disabled because these tests require "shared_preload_libraries=pg_stat_statements",
|
||||||
# which typical installcheck users do not have (e.g. buildfarm clients).
|
# which typical installcheck users do not have (e.g. buildfarm clients).
|
||||||
|
62
contrib/pg_stat_statements/expected/extended.out
Normal file
62
contrib/pg_stat_statements/expected/extended.out
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
-- Tests with extended query protocol
|
||||||
|
SET pg_stat_statements.track_utility = FALSE;
|
||||||
|
SELECT pg_stat_statements_reset() IS NOT NULL AS t;
|
||||||
|
t
|
||||||
|
---
|
||||||
|
t
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT $1 \parse stmt1
|
||||||
|
SELECT $1, $2 \parse stmt2
|
||||||
|
SELECT $1, $2, $3 \parse stmt3
|
||||||
|
SELECT $1 \bind 'unnamed_val1' \g
|
||||||
|
?column?
|
||||||
|
--------------
|
||||||
|
unnamed_val1
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
\bind_named stmt1 'stmt1_val1' \g
|
||||||
|
?column?
|
||||||
|
------------
|
||||||
|
stmt1_val1
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
\bind_named stmt2 'stmt2_val1' 'stmt2_val2' \g
|
||||||
|
?column? | ?column?
|
||||||
|
------------+------------
|
||||||
|
stmt2_val1 | stmt2_val2
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
\bind_named stmt3 'stmt3_val1' 'stmt3_val2' 'stmt3_val3' \g
|
||||||
|
?column? | ?column? | ?column?
|
||||||
|
------------+------------+------------
|
||||||
|
stmt3_val1 | stmt3_val2 | stmt3_val3
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
\bind_named stmt3 'stmt3_val4' 'stmt3_val5' 'stmt3_val6' \g
|
||||||
|
?column? | ?column? | ?column?
|
||||||
|
------------+------------+------------
|
||||||
|
stmt3_val4 | stmt3_val5 | stmt3_val6
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
\bind_named stmt2 'stmt2_val3' 'stmt2_val4' \g
|
||||||
|
?column? | ?column?
|
||||||
|
------------+------------
|
||||||
|
stmt2_val3 | stmt2_val4
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
\bind_named stmt1 'stmt1_val1' \g
|
||||||
|
?column?
|
||||||
|
------------
|
||||||
|
stmt1_val1
|
||||||
|
(1 row)
|
||||||
|
|
||||||
|
SELECT calls, rows, query FROM pg_stat_statements ORDER BY query COLLATE "C";
|
||||||
|
calls | rows | query
|
||||||
|
-------+------+----------------------------------------------------
|
||||||
|
3 | 3 | SELECT $1
|
||||||
|
2 | 2 | SELECT $1, $2
|
||||||
|
2 | 2 | SELECT $1, $2, $3
|
||||||
|
1 | 1 | SELECT pg_stat_statements_reset() IS NOT NULL AS t
|
||||||
|
(4 rows)
|
||||||
|
|
@ -51,6 +51,7 @@ tests += {
|
|||||||
'wal',
|
'wal',
|
||||||
'entry_timestamp',
|
'entry_timestamp',
|
||||||
'privileges',
|
'privileges',
|
||||||
|
'extended',
|
||||||
'cleanup',
|
'cleanup',
|
||||||
'oldextversions',
|
'oldextversions',
|
||||||
],
|
],
|
||||||
|
17
contrib/pg_stat_statements/sql/extended.sql
Normal file
17
contrib/pg_stat_statements/sql/extended.sql
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
-- Tests with extended query protocol
|
||||||
|
|
||||||
|
SET pg_stat_statements.track_utility = FALSE;
|
||||||
|
|
||||||
|
SELECT pg_stat_statements_reset() IS NOT NULL AS t;
|
||||||
|
SELECT $1 \parse stmt1
|
||||||
|
SELECT $1, $2 \parse stmt2
|
||||||
|
SELECT $1, $2, $3 \parse stmt3
|
||||||
|
SELECT $1 \bind 'unnamed_val1' \g
|
||||||
|
\bind_named stmt1 'stmt1_val1' \g
|
||||||
|
\bind_named stmt2 'stmt2_val1' 'stmt2_val2' \g
|
||||||
|
\bind_named stmt3 'stmt3_val1' 'stmt3_val2' 'stmt3_val3' \g
|
||||||
|
\bind_named stmt3 'stmt3_val4' 'stmt3_val5' 'stmt3_val6' \g
|
||||||
|
\bind_named stmt2 'stmt2_val3' 'stmt2_val4' \g
|
||||||
|
\bind_named stmt1 'stmt1_val1' \g
|
||||||
|
|
||||||
|
SELECT calls, rows, query FROM pg_stat_statements ORDER BY query COLLATE "C";
|
Reference in New Issue
Block a user