diff --git a/pg_stat_monitor.c b/pg_stat_monitor.c index c639e34..a02a0d0 100644 --- a/pg_stat_monitor.c +++ b/pg_stat_monitor.c @@ -1489,11 +1489,12 @@ pgss_store(uint64 queryid, return; Assert(query != NULL); - GetUserIdAndSecContext((unsigned int *)&userid, &con); - if (userid == 0) - return; + if (kind == PGSS_ERROR) + GetUserIdAndSecContext((unsigned int *)&userid, &con); + else + userid = GetUserId(); - comments = extract_query_comments(query); + comments = extract_query_comments(query); /* Safety check... */ if (!IsSystemInitialized() || !pgss_qbuf[pgss->current_wbucket]) diff --git a/regression/expected/error.out b/regression/expected/error.out index 1c278c4..b901e14 100644 --- a/regression/expected/error.out +++ b/regression/expected/error.out @@ -20,19 +20,23 @@ BEGIN RAISE WARNING 'warning message'; END $$; WARNING: warning message -SELECT query, elevel, sqlcode, message FROM pg_stat_monitor ORDER BY query COLLATE "C"; - query | elevel | sqlcode | message ------------------------------------------------------------------------------------------+--------+---------+----------------------------------- - ELECET * FROM unknown; | 20 | 42601 | syntax error at or near "ELECET" - SELECT * FROM unknown; | 20 | 42P01 | relation "unknown" does not exist - SELECT 1/0; | 20 | 22012 | division by zero - SELECT pg_stat_monitor_reset(); | 0 | | - SELECT query, elevel, sqlcode, message FROM pg_stat_monitor ORDER BY query COLLATE "C"; | 0 | | - do $$ +| 19 | 01000 | warning message - BEGIN +| | | - RAISE WARNING 'warning message'; +| | | - END $$; | | | -(6 rows) +SELECT query, elevel, sqlcode, message FROM pg_stat_monitor ORDER BY query COLLATE "C",elevel; + query | elevel | sqlcode | message +------------------------------------------------------------------------------------------------+--------+---------+----------------------------------- + ELECET * FROM unknown; | 20 | 42601 | syntax error at or near "ELECET" + SELECT * FROM unknown; | 20 | 42P01 | relation "unknown" does not exist + SELECT 1/0; | 20 | 22012 | division by zero + SELECT pg_stat_monitor_reset(); | 0 | | + SELECT query, elevel, sqlcode, message FROM pg_stat_monitor ORDER BY query COLLATE "C",elevel; | 0 | | + do $$ +| 0 | | + BEGIN +| | | + RAISE WARNING 'warning message'; +| | | + END $$; | | | + do $$ +| 19 | 01000 | warning message + BEGIN +| | | + RAISE WARNING 'warning message'; +| | | + END $$; | | | +(7 rows) SELECT pg_stat_monitor_reset(); pg_stat_monitor_reset diff --git a/regression/sql/error.sql b/regression/sql/error.sql index 5102782..98870f2 100644 --- a/regression/sql/error.sql +++ b/regression/sql/error.sql @@ -9,6 +9,6 @@ BEGIN RAISE WARNING 'warning message'; END $$; -SELECT query, elevel, sqlcode, message FROM pg_stat_monitor ORDER BY query COLLATE "C"; +SELECT query, elevel, sqlcode, message FROM pg_stat_monitor ORDER BY query COLLATE "C",elevel; SELECT pg_stat_monitor_reset(); DROP EXTENSION pg_stat_monitor;