-
Notifications
You must be signed in to change notification settings - Fork 178
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
When the encoding of a database is not UTF8. Queries with special caracters might crash pg_activity with the message : UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 26: ++ invalid continuation byte This patch fixes the issue by querying pg_database.encoding and using it to encode the string.
- Loading branch information
Showing
10 changed files
with
146 additions
and
115 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,26 +1,27 @@ | ||
-- Get data from pg_activity since pg 11 | ||
SELECT | ||
pg_stat_activity.pid AS pid, | ||
pg_stat_activity.application_name AS application_name, | ||
pg_stat_activity.datname AS database, | ||
CASE WHEN pg_stat_activity.client_addr IS NULL | ||
a.pid AS pid, | ||
a.application_name AS application_name, | ||
a.datname AS database, | ||
CASE WHEN a.client_addr IS NULL | ||
THEN 'local' | ||
ELSE pg_stat_activity.client_addr::TEXT | ||
ELSE a.client_addr::TEXT | ||
END AS client, | ||
EXTRACT(epoch FROM (NOW() - pg_stat_activity.{duration_column})) AS duration, | ||
pg_stat_activity.wait_event AS wait, | ||
pg_stat_activity.usename AS user, | ||
pg_stat_activity.state AS state, | ||
pg_stat_activity.query AS query, | ||
pg_stat_activity.backend_type = 'parallel worker' AS is_parallel_worker | ||
EXTRACT(epoch FROM (NOW() - a.{duration_column})) AS duration, | ||
a.wait_event AS wait, | ||
a.usename AS user, | ||
a.state AS state, | ||
convert_from(a.query::bytea, coalesce(pg_catalog.pg_encoding_to_char(b.encoding), 'UTF8')) AS query, | ||
a.backend_type = 'parallel worker' AS is_parallel_worker | ||
FROM | ||
pg_stat_activity | ||
pg_stat_activity a | ||
LEFT OUTER JOIN pg_database b ON a.datid = b.oid | ||
WHERE | ||
state <> 'idle' | ||
AND pid <> pg_backend_pid() | ||
a.state <> 'idle' | ||
AND a.pid <> pg_catalog.pg_backend_pid() | ||
AND CASE WHEN %(min_duration)s = 0 | ||
THEN true | ||
ELSE extract(epoch from now() - {duration_column}) > %(min_duration)s | ||
END | ||
ORDER BY | ||
EXTRACT(epoch FROM (NOW() - pg_stat_activity.{duration_column})) DESC; | ||
EXTRACT(epoch FROM (NOW() - a.{duration_column})) DESC; |
Oops, something went wrong.