403Webshell
Server IP : 172.67.216.182  /  Your IP : 162.158.108.135
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/innodb/t/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /www/server/mysql/src/mysql-test/suite/innodb/t/innodb_stats_del_mark.test
--echo #
--echo # Bug 23333990	PERSISTENT INDEX STATISTICS UPDATE BEFORE
--echo #		TRANSACTION IS COMMITTED
--echo #

--source include/big_test.inc
--source include/not_valgrind.inc

--echo "Test 1:- Uncommited delete test"
CREATE TABLE t1 (id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
		 val INT UNSIGNED NOT NULL,
		 INDEX (val)) ENGINE=INNODB
		 STATS_PERSISTENT=1,STATS_AUTO_RECALC=1;


INSERT INTO t1 (val) VALUES (4);
INSERT INTO t1 (val) SELECT VAL from t1;
INSERT INTO t1 (val) SELECT VAL from t1;
INSERT INTO t1 (val) SELECT VAL from t1;
INSERT INTO t1 (val) SELECT VAL from t1;
INSERT INTO t1 (val) SELECT VAL from t1;
INSERT INTO t1 (val) SELECT VAL from t1;
INSERT INTO t1 (val) SELECT VAL from t1;
INSERT INTO t1 (val) SELECT VAL from t1;
INSERT INTO t1 (val) SELECT VAL from t1;
INSERT INTO t1 (val) SELECT VAL from t1;
INSERT INTO t1 (val) SELECT VAL from t1;
INSERT INTO t1 (val) SELECT VAL from t1;
INSERT INTO t1 (val) SELECT VAL from t1;
INSERT INTO t1 (val) SELECT VAL from t1;
INSERT INTO t1 (val) SELECT VAL from t1;
INSERT INTO t1 (val) SELECT VAL from t1;
INSERT INTO t1 (val) SELECT VAL from t1;
INSERT INTO t1 (val) SELECT VAL from t1;
SELECT COUNT(*) FROM t1;

connect(con1, localhost, root,,);

--echo Connection 1
connection con1;
START TRANSACTION;
DELETE FROM t1;
send SELECT COUNT(*) FROM t1;

--echo Connection Default
connection default;
# To make test determinstic in case stats calculation is not
# triggered we will call analyze table
analyze table t1;
let $row_count= query_get_value(EXPLAIN SELECT * FROM t1 WHERE val=4, rows,1);
if ($row_count > 20000)
{
--echo Test correctly estimates the number of rows as > 20000
--echo even when in other uncommmited transaction
--echo all rows have been deleted.
}

if ($row_count < 20000)
{
--echo FAIL row count is $row_count
}
--echo Connection 1
connection con1;
reap;
commit;

--echo Connection deafult
connection default;

--echo Test 2:- Insert and rollback test
CREATE TABLE t2 (id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
		 val INT UNSIGNED NOT NULL,
		 INDEX (val)) ENGINE=INNODB
		 STATS_PERSISTENT=1,STATS_AUTO_RECALC=1;

--echo Connection 1
connection con1;

START TRANSACTION;

INSERT INTO t2 (val) VALUES (4);
INSERT INTO t2 (val) SELECT VAL from t2;
INSERT INTO t2 (val) SELECT VAL from t2;
INSERT INTO t2 (val) SELECT VAL from t2;
INSERT INTO t2 (val) SELECT VAL from t2;
INSERT INTO t2 (val) SELECT VAL from t2;
INSERT INTO t2 (val) SELECT VAL from t2;
INSERT INTO t2 (val) SELECT VAL from t2;
INSERT INTO t2 (val) SELECT VAL from t2;
INSERT INTO t2 (val) SELECT VAL from t2;
INSERT INTO t2 (val) SELECT VAL from t2;
INSERT INTO t2 (val) SELECT VAL from t2;
INSERT INTO t2 (val) SELECT VAL from t2;
INSERT INTO t2 (val) SELECT VAL from t2;
INSERT INTO t2 (val) SELECT VAL from t2;
INSERT INTO t2 (val) SELECT VAL from t2;
INSERT INTO t2 (val) SELECT VAL from t2;
INSERT INTO t2 (val) SELECT VAL from t2;
INSERT INTO t2 (val) SELECT VAL from t2;
send SELECT COUNT(*) FROM t2;

--echo Connection default
connection default;
select count(*) from t2;
analyze table t2;
let $row_count= query_get_value(EXPLAIN SELECT * FROM t2 WHERE val=4, rows,1);
if ($row_count > 20000)
{
--echo Test correctly estimates the number of rows as > 20000
--echo even when in other uncommited transaction
--echo many rows are inserted.
}

--echo Connection 1
connection con1;
reap;
--echo Rollback the insert
rollback;

--echo Connection default
connection default;
let $row_count= query_get_value(EXPLAIN SELECT * FROM t2 WHERE val=4, rows,1);
if ($row_count <= 1)
{
--echo Test correctly estimates the number of rows as $row_count
--echo after rollback.
}

disconnect con1;
DROP TABLE t1,t2;

Youez - 2016 - github.com/yon3zu
LinuXploit