403Webshell
Server IP : 104.21.38.3  /  Your IP : 162.158.88.146
Web Server : Apache
System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64
User : www ( 1000)
PHP Version : 7.4.33
Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /www/server/mysql/src/mysql-test/suite/perfschema/t/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /www/server/mysql/src/mysql-test/suite/perfschema/t/selects.test
--source include/not_embedded.inc
--source include/have_perfschema.inc

#
# WL#4814, 4.1.2 STORAGE ENGINE, FSE8: Selects
#

# Make some data that we can work on:

UPDATE performance_schema.setup_instruments SET enabled = 'YES', timed = 'YES';

# Disable ALL table IO, to avoid generating events from the selects
# To be revised after WL#5342 PERFORMANCE SCHEMA SETUP OBJECTS

UPDATE performance_schema.setup_instruments SET enabled = 'NO', timed = 'NO'
  where NAME='wait/io/table/sql/handler';

--disable_warnings
DROP TABLE IF EXISTS t1;
--enable_warnings
CREATE TABLE t1 (id INT PRIMARY KEY, b CHAR(100) DEFAULT 'initial value')
ENGINE=MyISAM;
INSERT INTO t1 (id) VALUES (1), (2), (3), (4), (5), (6), (7), (8);

# ORDER BY, GROUP BY and HAVING

--replace_column 2 [NUM_BYTES]
SELECT OPERATION, SUM(NUMBER_OF_BYTES) AS TOTAL
FROM performance_schema.events_waits_history_long
GROUP BY OPERATION
HAVING TOTAL IS NOT NULL
ORDER BY OPERATION
LIMIT 1;

# Sub SELECT
--replace_column 1 [EVENT_ID]
SELECT EVENT_ID FROM performance_schema.events_waits_current
WHERE THREAD_ID IN
  (SELECT THREAD_ID FROM performance_schema.threads)
AND EVENT_NAME IN
  (SELECT NAME FROM performance_schema.setup_instruments
   WHERE NAME LIKE "wait/synch/%")
LIMIT 1;

# JOIN

--replace_column 1 [EVENT_ID]
SELECT DISTINCT EVENT_ID
FROM performance_schema.events_waits_current
JOIN performance_schema.events_waits_history USING (EVENT_ID)
JOIN performance_schema.events_waits_history_long USING (EVENT_ID)
ORDER BY EVENT_ID
LIMIT 1;

# Self JOIN

--replace_column 1 [THREAD_ID] 2 [EVENT_ID] 3 [EVENT_NAME] 4 [TIMER_WAIT]
SELECT t1.THREAD_ID, t2.EVENT_ID, t3.EVENT_NAME, t4.TIMER_WAIT
FROM performance_schema.events_waits_history t1
JOIN performance_schema.events_waits_history t2 USING (EVENT_ID)
JOIN performance_schema.events_waits_history t3 ON (t2.THREAD_ID = t3.THREAD_ID)
JOIN performance_schema.events_waits_history t4 ON (t3.EVENT_NAME = t4.EVENT_NAME)
ORDER BY t1.EVENT_ID, t2.EVENT_ID
LIMIT 5;

# UNION
--replace_column 1 [THREAD_ID] 2 [EVENT_ID]
SELECT THREAD_ID, EVENT_ID FROM (
SELECT THREAD_ID, EVENT_ID FROM performance_schema.events_waits_current
UNION
SELECT THREAD_ID, EVENT_ID FROM performance_schema.events_waits_history
UNION
SELECT THREAD_ID, EVENT_ID FROM performance_schema.events_waits_history_long
) t1 ORDER BY THREAD_ID, EVENT_ID
LIMIT 5;

# EVENT

# Check that the event_scheduler is really running
--source include/running_event_scheduler.inc

--disable_warnings
DROP TABLE IF EXISTS t_event;
DROP EVENT IF EXISTS t_ps_event;
--enable_warnings
CREATE TABLE t_event AS
SELECT EVENT_ID FROM performance_schema.events_waits_current
WHERE 1 = 2;
CREATE EVENT t_ps_event
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 SECOND
ON COMPLETION PRESERVE
DO INSERT INTO t_event
   SELECT DISTINCT EVENT_ID
   FROM performance_schema.events_waits_current
   JOIN performance_schema.events_waits_history USING (EVENT_ID)
   ORDER BY EVENT_ID
   LIMIT 1;

# TRIGGER

ALTER TABLE t1 ADD COLUMN c INT;

--disable_warnings
DROP TRIGGER IF EXISTS t_ps_trigger;
--enable_warnings
delimiter |;

CREATE TRIGGER t_ps_trigger BEFORE INSERT ON t1
  FOR EACH ROW BEGIN
     SET NEW.c = (SELECT MAX(EVENT_ID)
                  FROM performance_schema.events_waits_current);
  END;
|

delimiter ;|

INSERT INTO t1 (id) VALUES (11), (12), (13);

--replace_column 2 [EVENT_ID]
SELECT id, c FROM t1 WHERE id > 10 ORDER BY c;

DROP TRIGGER t_ps_trigger;

# PROCEDURE

--disable_warnings
DROP PROCEDURE IF EXISTS t_ps_proc;
--enable_warnings
delimiter |;

CREATE PROCEDURE t_ps_proc(IN conid INT, OUT pid INT)
BEGIN
   SELECT thread_id FROM performance_schema.threads
   WHERE PROCESSLIST_ID = conid INTO pid;
END;

|

delimiter ;|

CALL t_ps_proc(connection_id(), @p_id);

# FUNCTION

--disable_warnings
DROP FUNCTION IF EXISTS t_ps_proc;
--enable_warnings
delimiter |;

CREATE FUNCTION t_ps_func(conid INT) RETURNS int
BEGIN
   return (SELECT thread_id FROM performance_schema.threads
           WHERE PROCESSLIST_ID = conid);
END;

|

delimiter ;|

SELECT t_ps_func(connection_id()) = @p_id;

# We might reach this point too early which means the event scheduler has not
# executed our "t_ps_event". Therefore we poll till the record was inserted
# and run our test statement afterwards.
let $wait_timeout= 20;
let $wait_condition= SELECT COUNT(*) = 1 FROM t_event;
--source include/wait_condition.inc
--replace_column 1 [EVENT_ID]
SELECT * FROM t_event;

# Clean up
DROP PROCEDURE t_ps_proc;
DROP FUNCTION t_ps_func;
DROP EVENT t_ps_event;
DROP TABLE t1;
DROP TABLE t_event;

UPDATE performance_schema.setup_instruments SET enabled = 'YES', timed = 'YES';


Youez - 2016 - github.com/yon3zu
LinuXploit