forked from dalibo/pg_activity
-
Notifications
You must be signed in to change notification settings - Fork 0
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
9 changed files
with
132 additions
and
119 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,29 +1,30 @@ | ||
-- 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, | ||
CASE WHEN pg_stat_activity.wait_event_type IN ('LWLock', 'Lock', 'BufferPin') | ||
EXTRACT(epoch FROM (NOW() - a.{duration_column})) AS duration, | ||
CASE WHEN a.wait_event_type IN ('LWLock', 'Lock', 'BufferPin') | ||
THEN true | ||
ELSE false | ||
END 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 | ||
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; |
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
Oops, something went wrong.