403Webshell
Server IP : 104.21.38.3  /  Your IP : 172.71.152.34
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/statement_program_non_nested.test
# -----------------------------------------------------------------------
# Tests for the performance schema stored program instrumentation.
# -----------------------------------------------------------------------

--source include/not_embedded.inc
--source include/have_perfschema.inc

TRUNCATE TABLE performance_schema.events_statements_summary_by_program;
TRUNCATE TABLE performance_schema.events_statements_history_long;

--echo ################################################
--echo # Quering PS statement summary and history_long#
--echo ################################################ 

--source suite/perfschema/include/program_setup.inc
--source suite/perfschema/include/program_execution.inc

SELECT OBJECT_TYPE, OBJECT_SCHEMA, OBJECT_NAME, COUNT_STAR, COUNT_STATEMENTS 
       FROM performance_schema.events_statements_summary_by_program
       WHERE OBJECT_SCHEMA='stored_programs' ORDER BY OBJECT_NAME;

SELECT EVENT_NAME, SQL_TEXT, CURRENT_SCHEMA, OBJECT_TYPE, OBJECT_SCHEMA,
       OBJECT_NAME, NESTING_EVENT_TYPE, NESTING_EVENT_LEVEL FROM
       performance_schema.events_statements_history_long WHERE
       CURRENT_SCHEMA='stored_programs' AND 
       (SQL_TEXT not like '%count(*) = 1%' OR SQL_TEXT IS NULL)
       ORDER BY OBJECT_NAME, NESTING_EVENT_LEVEL, SQL_TEXT;


--echo # clean -up

TRUNCATE TABLE performance_schema.events_statements_summary_by_program;
TRUNCATE TABLE performance_schema.events_statements_history_long;

# After truncate the statictics collected will are reset
SELECT OBJECT_TYPE, OBJECT_SCHEMA, OBJECT_NAME, COUNT_STAR, COUNT_STATEMENTS 
       FROM performance_schema.events_statements_summary_by_program
       WHERE OBJECT_SCHEMA='stored_programs' ORDER BY OBJECT_NAME;

--source suite/perfschema/include/program_cleanup.inc 

# After clean-up the stored programs are removed from PS tables 

SELECT OBJECT_TYPE, OBJECT_SCHEMA, OBJECT_NAME, COUNT_STAR, COUNT_STATEMENTS 
       FROM performance_schema.events_statements_summary_by_program
       WHERE OBJECT_SCHEMA='stored_programs' ORDER BY OBJECT_NAME;

# Check the intrumentation of stored programs 
# when statement/sp/% instruments not timed

--source suite/perfschema/include/program_setup.inc

update performance_schema.setup_instruments set enabled='YES', timed='NO'
  where name like "statement/sp/%" order by name; 

TRUNCATE TABLE performance_schema.events_statements_summary_by_program;
TRUNCATE TABLE performance_schema.events_statements_history_long;

--source suite/perfschema/include/program_execution.inc

# check instrumentation 

SELECT EVENT_NAME, TIMER_START, TIMER_END, TIMER_WAIT FROM
       performance_schema.events_statements_history_long WHERE
       CURRENT_SCHEMA='stored_programs' AND EVENT_NAME like "statement/sp/%";

# clean-up

# Restore the setup
update performance_schema.setup_instruments set enabled='YES', timed='YES'
  where name like "statement/sp/%" order by name;

TRUNCATE TABLE performance_schema.events_statements_summary_by_program;
TRUNCATE TABLE performance_schema.events_statements_history_long;

--source suite/perfschema/include/program_cleanup.inc

#----------------------------------------------------------------
# The statistics of a stored program are not collected 
# if its execution fails 
#----------------------------------------------------------------

--echo # set-up
CREATE DATABASE sp;
USE sp;

CREATE TABLE t1(
  a INT,
  b INT
);

--echo # let the creation of the following stored programs fail 
--error 1064
CREATE PROCEDURE fail1(IN a INT  OUT x CHAR(16)) 
  SET a=1;

--error 1064
CREATE FUNCTION fail2(a INT , b INT) RETURNS INT
  x=SELECT COUNT(*) FROM t; 

--error 1064
CREATE EVENT fail3 SCHEDULE EVERY MICROSECOND DO
  DROP TABLE t;

--echo # the below query on PS table doesn't show any rows 
--echo # as the creation of stored programs failed 
SELECT OBJECT_TYPE, OBJECT_SCHEMA, OBJECT_NAME, COUNT_STAR, COUNT_STATEMENTS
       FROM performance_schema.events_statements_summary_by_program
       WHERE OBJECT_SCHEMA='sp'; 
  
--echo # create few stored programs 
DELIMITER |;
CREATE PROCEDURE p(x1 INT, x2 INT)
BEGIN
  INSERT INTO t1 VALUES (x1, x2);
END|
DELIMITER ;|

CREATE FUNCTION f(y1 INT, y2 INT) RETURNS INT
  RETURN y1+y2;

CREATE TRIGGER trg AFTER INSERT ON t1 FOR EACH ROW
  SET @neg=-1;

--echo # execute the created stored programs such that they fail.
--error 1318
CALL p(7);
--error 1318
SELECT f("add",1,3);
--error 1064
INSERT INTO t1;

--echo # the below query on PS table doesn't expose any statistics as 
--echo # execution of the created stored porgrams failed.
SELECT OBJECT_TYPE, OBJECT_SCHEMA, OBJECT_NAME, COUNT_STAR, COUNT_STATEMENTS
       FROM performance_schema.events_statements_summary_by_program
       WHERE OBJECT_SCHEMA='sp';

--echo #clean-up
DROP PROCEDURE p;
DROP FUNCTION f;
DROP TRIGGER trg;
DROP TABLE t1;
DROP DATABASE sp;

Youez - 2016 - github.com/yon3zu
LinuXploit