Server IP : 172.67.216.182 / Your IP : 172.68.242.82 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 : |
# Test for bug #14676111: WRONG PAGE_LEVEL WRITTEN FOR UPPER THAN FATHER PAGE AT BTR_LIFT_PAGE_UP() -- source include/have_innodb.inc -- source include/have_debug.inc --disable_warnings if (`select count(*)=0 from information_schema.global_variables where variable_name = 'INNODB_LIMIT_OPTIMISTIC_INSERT_DEBUG'`) { --skip Test requires InnoDB built with UNIV_DEBUG definition. } --enable_warnings --disable_query_log set @old_innodb_limit_optimistic_insert_debug = @@innodb_limit_optimistic_insert_debug; set @old_innodb_stats_persistent = @@innodb_stats_persistent; set @old_innodb_rollback_segments = @@innodb_rollback_segments; # Limit undo segments for stable progress of purge. set global innodb_rollback_segments = 1; --enable_query_log --disable_warnings drop table if exists t1; --enable_warnings set global innodb_stats_persistent = false; CREATE TABLE t1 (a int not null primary key) engine=InnoDB; # # make 4 leveled straight tree # set global innodb_limit_optimistic_insert_debug = 2; insert into t1 values (1); insert into t1 values (5); #current tree form # (1, 5) insert into t1 values (4); #records in a page is limited to 2 artificially. root rise occurs #current tree form # (1, 5) #(1, 4) (5) insert into t1 values (3); #current tree form # (1, 5) # (1, 4) (5) #(1, 3) (4) (5) insert into t1 values (2); #current tree form # (1, 5) # (1, 4) (5) # (1, 3) (4) (5) #(1, 2) (3) (4) (5) analyze table t1; select CLUST_INDEX_SIZE from information_schema.INNODB_SYS_TABLESTATS where NAME = 'test/t1'; delete from t1 where a=4; set global innodb_purge_stop_now=ON; set global innodb_purge_run_now=ON; --source include/wait_innodb_all_purged.inc #deleting 1 record of 2 records don't cause merge artificially. #current tree form # (1, 5) # (1) (5) # (1, 3) (5) #(1, 2) (3) (5) analyze table t1; select CLUST_INDEX_SIZE from information_schema.INNODB_SYS_TABLESTATS where NAME = 'test/t1'; delete from t1 where a=5; set global innodb_purge_stop_now=ON; set global innodb_purge_run_now=ON; --source include/wait_innodb_all_purged.inc #deleting 1 record of 2 records don't cause merge artificially. #current tree form # (1) # (1) # (1, 3) <- lift up this level next, when deleting node ptr #(1, 2) (3) <- merged next analyze table t1; select CLUST_INDEX_SIZE from information_schema.INNODB_SYS_TABLESTATS where NAME = 'test/t1'; # # cause merge at level 0 # #disable the artificial limitation of records in a page set global innodb_limit_optimistic_insert_debug = 0; delete from t1 where a=2; set global innodb_purge_stop_now=ON; set global innodb_purge_run_now=ON; --source include/wait_innodb_all_purged.inc #merge page occurs. and lift up occurs. #current tree form # (1) # (1) # (1, 3) analyze table t1; select CLUST_INDEX_SIZE from information_schema.INNODB_SYS_TABLESTATS where NAME = 'test/t1'; insert into t1 values (2); #current tree form # (1) # (1) <- lift up this level next, because it is not root # (1, 2, 3) delete from t1 where a=2; set global innodb_purge_stop_now=ON; set global innodb_purge_run_now=ON; --source include/wait_innodb_all_purged.inc #current tree form # (1) # (1, 3) analyze table t1; select CLUST_INDEX_SIZE from information_schema.INNODB_SYS_TABLESTATS where NAME = 'test/t1'; insert into t1 values (2); #current tree form # (1) # (1, 2, 3) <- lift up this level next, because the father is root delete from t1 where a=2; set global innodb_purge_stop_now=ON; set global innodb_purge_run_now=ON; --source include/wait_innodb_all_purged.inc #current tree form # (1, 3) analyze table t1; select CLUST_INDEX_SIZE from information_schema.INNODB_SYS_TABLESTATS where NAME = 'test/t1'; drop table t1; --disable_query_log set global innodb_limit_optimistic_insert_debug = @old_innodb_limit_optimistic_insert_debug; set global innodb_stats_persistent = @old_innodb_stats_persistent; set global innodb_rollback_segments = @old_innodb_rollback_segments; --enable_query_log