Skip to content

Commit 1f6605b

Browse files
Updating plpgsql queries to avoid duplicates.
Updating plpgsql queries to avoid duplicates. Signed-off-by: VigneshViggu <[email protected]>
1 parent 131b35e commit 1f6605b

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

collector/pg_stat_statements.go

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ var (
7676
SELECT percentile_cont(0.1) WITHIN GROUP (ORDER BY total_time) AS percentile
7777
FROM pg_stat_statements
7878
)
79-
SELECT DISTINCT ON (pss.queryid)
79+
SELECT DISTINCT ON (pss.queryid, pg_get_userbyid(pss.userid), pg_database.datname)
8080
pg_get_userbyid(pss.userid) as user,
8181
pg_database.datname,
8282
pss.queryid,
@@ -87,28 +87,28 @@ var (
8787
pss.blk_write_time / 1000.0 as block_write_seconds_total
8888
FROM pg_stat_statements pss
8989
JOIN pg_database ON pg_database.oid = pss.dbid
90-
CROSS JOIN percentiles
90+
CROSS JOIN percentiles
9191
WHERE pss.total_time > (SELECT percentile FROM percentiles)
92-
ORDER BY pss.queryid, pss.userid DESC
92+
ORDER BY pss.queryid, pg_get_userbyid(pss.userid) DESC, pg_database.datname
9393
LIMIT 100;`
9494

9595
// Query is compatible from PostgreSQL 13 and higher versions.
96-
pgStatStatementsNewQuery = `SELECT DISTINCT ON (pss.queryid)
97-
pg_get_userbyid(pss.userid) as user,
98-
pg_database.datname,
96+
pgStatStatementsNewQuery = `SELECT DISTINCT ON (pss.queryid, pg_get_userbyid(pss.userid), pg_database.datname)
97+
pg_get_userbyid(pss.userid) AS user,
98+
pg_database.datname AS database_name,
9999
pss.queryid,
100-
pss.calls as calls_total,
101-
pss.total_exec_time / 1000.0 as seconds_total,
102-
pss.rows as rows_total,
103-
pss.blk_read_time / 1000.0 as block_read_seconds_total,
104-
pss.blk_write_time / 1000.0 as block_write_seconds_total
100+
pss.calls AS calls_total,
101+
pss.total_exec_time / 1000.0 AS seconds_total,
102+
pss.rows AS rows_total,
103+
pss.blk_read_time / 1000.0 AS block_read_seconds_total,
104+
pss.blk_write_time / 1000.0 AS block_write_seconds_total
105105
FROM pg_stat_statements pss
106106
JOIN pg_database ON pg_database.oid = pss.dbid
107107
JOIN (
108108
SELECT percentile_cont(0.1) WITHIN GROUP (ORDER BY total_exec_time) AS percentile_val
109109
FROM pg_stat_statements
110110
) AS perc ON pss.total_exec_time > perc.percentile_val
111-
ORDER BY pss.queryid, pss.userid DESC
111+
ORDER BY pss.queryid, pg_get_userbyid(pss.userid) DESC, pg_database.datname
112112
LIMIT 100;`
113113
)
114114

0 commit comments

Comments
 (0)