diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 18:00:34 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 18:00:34 +0000 |
commit | 3f619478f796eddbba6e39502fe941b285dd97b1 (patch) | |
tree | e2c7b5777f728320e5b5542b6213fd3591ba51e2 /scripts/sys_schema/functions/ps_thread_account.sql | |
parent | Initial commit. (diff) | |
download | mariadb-3f619478f796eddbba6e39502fe941b285dd97b1.tar.xz mariadb-3f619478f796eddbba6e39502fe941b285dd97b1.zip |
Adding upstream version 1:10.11.6.upstream/1%10.11.6upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'scripts/sys_schema/functions/ps_thread_account.sql')
-rw-r--r-- | scripts/sys_schema/functions/ps_thread_account.sql | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/scripts/sys_schema/functions/ps_thread_account.sql b/scripts/sys_schema/functions/ps_thread_account.sql new file mode 100644 index 00000000..f91e8c66 --- /dev/null +++ b/scripts/sys_schema/functions/ps_thread_account.sql @@ -0,0 +1,71 @@ +-- Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; version 2 of the License. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +DROP FUNCTION IF EXISTS ps_thread_account; + +DELIMITER $$ + +CREATE DEFINER='mariadb.sys'@'localhost' FUNCTION ps_thread_account ( + in_thread_id BIGINT UNSIGNED + ) RETURNS TEXT + COMMENT ' + Description + ----------- + + Return the user@host account for the given Performance Schema thread id. + + Parameters + ----------- + + in_thread_id (BIGINT UNSIGNED): + The id of the thread to return the account for. + + Example + ----------- + + mysql> select thread_id, processlist_user, processlist_host from performance_schema.threads where type = ''foreground''; + +-----------+------------------+------------------+ + | thread_id | processlist_user | processlist_host | + +-----------+------------------+------------------+ + | 23 | NULL | NULL | + | 30 | root | localhost | + | 31 | msandbox | localhost | + | 32 | msandbox | localhost | + +-----------+------------------+------------------+ + 4 rows in set (0.00 sec) + + mysql> select sys.ps_thread_account(31); + +---------------------------+ + | sys.ps_thread_account(31) | + +---------------------------+ + | msandbox@localhost | + +---------------------------+ + 1 row in set (0.00 sec) + ' + + SQL SECURITY INVOKER + NOT DETERMINISTIC + READS SQL DATA +BEGIN + RETURN (SELECT IF( + type = 'FOREGROUND', + CONCAT(processlist_user, '@', processlist_host), + type + ) AS account + FROM `performance_schema`.`threads` + WHERE thread_id = in_thread_id); +END$$ + +DELIMITER ; |