Server IP : 104.21.38.3 / Your IP : 162.158.170.174 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 : |
# ********************************************************* # page size 32K ----> page size 16K # start the DB with page size 32K # create tables with record length = 16k # take the dump wl5757.sql # case 1 : start the DB with page size 16K # load/import the dump file # Check ERROR 1118 (42000) at line 106: Row size too large # During the load time for the page size 16k # case 2 : page size 32K ----> page size 64K # start the DB with page size 64K # Check no errors are expected during load time for page # size 64K, because record length is same for 32k and 64k # ********************************************************* --source include/not_valgrind.inc --source include/not_embedded.inc let $MYSQLD_BASEDIR= `select @@basedir`; # Create datadir path,rathan than mtr defaults path --mkdir $MYSQL_TMP_DIR/datadir1 # Set different paths for --datadir let $MYSQLD_DATADIR1 = $MYSQL_TMP_DIR/datadir1/data; call mtr.add_suppression("ERROR 1118 \\(42000\\) at line 106: Row size too large \\(> 8126\\)"); # Stop the MTR default datadir, as it was started with default 16k page size --echo # Stop DB server which was created by MTR default --source include/shutdown_mysqld.inc let BOOTSTRAP_SQL=$MYSQL_TMP_DIR/boot.sql; --echo # create bootstrap file write_file $BOOTSTRAP_SQL; CREATE DATABASE test; EOF # Note: we add the following parameters: "--innodb_log_file_size=5M # --innodb_log_files_in_group=2" to reduce bootstrap time. By default # innodb create 2*48MB redo log. With 2*5MB file, bootstrap takes less # time to create redo log files. # Set the bootstrap parameter page size 32k for datadir1 let NEW_CMD = $MYSQLD --no-defaults --initialize-insecure --lc_messages_dir=$MYSQL_SHAREDIR --innodb_page_size=32K --basedir=$MYSQLD_BASEDIR --datadir=$MYSQLD_DATADIR1 --innodb_log_file_size=5M --innodb_log_files_in_group=2 --innodb_undo_tablespaces=0 --init-file=$BOOTSTRAP_SQL</dev/null>>$MYSQLTEST_VARDIR/tmp/bootstrap.log 2>&1; --echo # Run the bootstrap command with page size 32k --exec $NEW_CMD --echo # Start the DB server with page size 32k --replace_result $MYSQLD_DATADIR1 MYSQLD_DATADIR1 --let $restart_parameters="restart: --innodb_page_size=32K --datadir=$MYSQLD_DATADIR1 --innodb_log_file_size=5M --innodb_log_files_in_group=2 --innodb_undo_tablespaces=0" --source include/start_mysqld.inc USE test; # page size 32K SELECT @@innodb_page_size; # Trying to create a table with record length < 16K ( 63 columns * 255 = 16065 ) CREATE TABLE tab1(col1 CHAR (255), col2 CHAR (255), col3 CHAR(255),col4 CHAR(255), col5 CHAR(255), col6 CHAR(255), col7 CHAR(255), col8 CHAR(255), col9 CHAR(255),col10 CHAR(255), col11 CHAR(255), col12 CHAR(255), col13 CHAR(255),col14 CHAR(255),col15 CHAR(255),col16 CHAR(255), col17 CHAR(255), col18 CHAR(255),col19 CHAR(255),col20 CHAR(255),col21 CHAR(255),col22 CHAR(255), col23 CHAR(255), col24 CHAR(255),col25 CHAR(255),col26 CHAR(255),col27 CHAR(255),col28 CHAR(255), col29 CHAR(255), col30 CHAR(255),col31 CHAR(255),col32 CHAR(255),col33 CHAR(255),col34 CHAR(255), col35 CHAR(255), col36 CHAR(255),col37 CHAR(255),col38 CHAR(255),col39 CHAR(255),col40 CHAR(255), col41 CHAR(255), col42 CHAR(255),col43 CHAR(255),col44 CHAR(255),col45 CHAR(255),col46 CHAR(255), col47 CHAR(255), col48 CHAR(255),col49 CHAR(255),col50 CHAR(255),col51 CHAR(255),col52 CHAR(255), col53 CHAR(255), col54 CHAR(255),col55 CHAR(255),col56 CHAR(255),col57 CHAR(255),col58 CHAR(255), col59 CHAR(255), col60 CHAR(255),col61 CHAR(255),col62 CHAR(255),col63 CHAR(255)) ENGINE = innodb ; # Load data INSERT INTO tab1 VALUES(repeat('a1',127),repeat('a2',127),repeat('a3',127),repeat('a4',127), repeat('a5',127),repeat('a6',127),repeat('a7',127),repeat('a8',127),repeat('a9',127),repeat('a10',62), repeat('a11',62),repeat('a12',62),repeat('a13',62),repeat('a14',62),repeat('a15',62),repeat('a16',62), repeat('a17',62),repeat('a18',62),repeat('a19',62),repeat('a20',62),repeat('a21',62), repeat('a22',62),repeat('a23',62),repeat('a24',62),repeat('a25',62),repeat('a26',62), repeat('a27',62),repeat('a28',62),repeat('a29',62),repeat('a30',62),repeat('a31',62), repeat('a32',62),repeat('a33',62),repeat('a34',62),repeat('a35',62),repeat('a36',62), repeat('a37',62),repeat('a38',62),repeat('a39',62),repeat('a40',62),repeat('a41',62), repeat('a42',62),repeat('a43',62),repeat('a44',62),repeat('a45',62),repeat('a46',62), repeat('a47',62),repeat('a48',62),repeat('a49',62),repeat('a50',62),repeat('a51',62), repeat('a52',62),repeat('a53',62),repeat('a54',62),repeat('a55',62),repeat('a56',62), repeat('a57',62),repeat('a58',62),repeat('a59',62),repeat('a60',62),repeat('a61',62), repeat('a62',62),repeat('a63',62)); # Trying to create a table with record length=16K ( 64 columns * 255 = 16384 ) SET innodb_strict_mode=OFF; CREATE TABLE tab2(col1 CHAR (255), col2 CHAR (255), col3 CHAR(255),col4 CHAR(255), col5 CHAR(255), col6 CHAR(255), col7 CHAR(255), col8 CHAR(255), col9 CHAR(255),col10 CHAR(255), col11 CHAR(255), col12 CHAR(255), col13 CHAR(255),col14 CHAR(255),col15 CHAR(255),col16 CHAR(255), col17 CHAR(255), col18 CHAR(255),col19 CHAR(255),col20 CHAR(255),col21 CHAR(255),col22 CHAR(255), col23 CHAR(255), col24 CHAR(255),col25 CHAR(255),col26 CHAR(255),col27 CHAR(255),col28 CHAR(255), col29 CHAR(255), col30 CHAR(255),col31 CHAR(255),col32 CHAR(255),col33 CHAR(255),col34 CHAR(255), col35 CHAR(255), col36 CHAR(255),col37 CHAR(255),col38 CHAR(255),col39 CHAR(255),col40 CHAR(255), col41 CHAR(255), col42 CHAR(255),col43 CHAR(255),col44 CHAR(255),col45 CHAR(255),col46 CHAR(255), col47 CHAR(255), col48 CHAR(255),col49 CHAR(255),col50 CHAR(255),col51 CHAR(255),col52 CHAR(255), col53 CHAR(255), col54 CHAR(255),col55 CHAR(255),col56 CHAR(255),col57 CHAR(255),col58 CHAR(255), col59 CHAR(255), col60 CHAR(255),col61 CHAR(255),col62 CHAR(255),col63 CHAR(255),col64 CHAR(255)) ENGINE=innodb ROW_FORMAT=COMPACT; # Load data , hit with an ERROR 1118 (42000): Row size too large (> 16318). --error ER_TOO_BIG_ROWSIZE INSERT INTO tab2 VALUES(repeat('a1',127),repeat('a2',127),repeat('a3',127),repeat('a4',127), repeat('a5',127),repeat('a6',127),repeat('a7',127),repeat('a8',127),repeat('a9',127),repeat('a10',62), repeat('a11',62),repeat('a12',62),repeat('a13',62),repeat('a14',62),repeat('a15',62),repeat('a16',62), repeat('a17',62),repeat('a18',62),repeat('a19',62),repeat('a20',62),repeat('a21',62), repeat('a22',62),repeat('a23',62),repeat('a24',62),repeat('a25',62),repeat('a26',62), repeat('a27',62),repeat('a28',62),repeat('a29',62),repeat('a30',62),repeat('a31',62), repeat('a32',62),repeat('a33',62),repeat('a34',62),repeat('a35',62),repeat('a36',62), repeat('a37',62),repeat('a38',62),repeat('a39',62),repeat('a40',62),repeat('a41',62), repeat('a42',62),repeat('a43',62),repeat('a44',62),repeat('a45',62),repeat('a46',62), repeat('a47',62),repeat('a48',62),repeat('a49',62),repeat('a50',62),repeat('a51',62), repeat('a52',62),repeat('a53',62),repeat('a54',62),repeat('a55',62),repeat('a56',62), repeat('a57',62),repeat('a58',62),repeat('a59',62),repeat('a60',62),repeat('a61',62), repeat('a62',62),repeat('a63',63),repeat('a64',63)); # Check for compressed tables # ERROR 1118 (42000): Row size too large (> 16383). CREATE TABLE tab3(col1 CHAR (255), col2 CHAR (255), col3 CHAR(255),col4 CHAR(255), col5 CHAR(255), col6 CHAR(255), col7 CHAR(255), col8 CHAR(255), col9 CHAR(255),col10 CHAR(255), col11 CHAR(255), col12 CHAR(255), col13 CHAR(255),col14 CHAR(255),col15 CHAR(255),col16 CHAR(255), col17 CHAR(255), col18 CHAR(255),col19 CHAR(255),col20 CHAR(255),col21 CHAR(255),col22 CHAR(255), col23 CHAR(255), col24 CHAR(255),col25 CHAR(255),col26 CHAR(255),col27 CHAR(255),col28 CHAR(255), col29 CHAR(255), col30 CHAR(255),col31 CHAR(255),col32 CHAR(255),col33 CHAR(255),col34 CHAR(255), col35 CHAR(255), col36 CHAR(255),col37 CHAR(255),col38 CHAR(255),col39 CHAR(255),col40 CHAR(255), col41 CHAR(255), col42 CHAR(255),col43 CHAR(255),col44 CHAR(255),col45 CHAR(255),col46 CHAR(255), col47 CHAR(255), col48 CHAR(255),col49 CHAR(255),col50 CHAR(255),col51 CHAR(255),col52 CHAR(255), col53 CHAR(255), col54 CHAR(255),col55 CHAR(255),col56 CHAR(255),col57 CHAR(255),col58 CHAR(255), col59 CHAR(255), col60 CHAR(255),col61 CHAR(255),col62 CHAR(255),col63 CHAR(255)) ENGINE = innodb ROW_FORMAT=COMPRESSED; INSERT INTO tab3 VALUES(repeat('a1',127),repeat('a2',127),repeat('a3',127),repeat('a4',127), repeat('a5',127),repeat('a6',127),repeat('a7',127),repeat('a8',127),repeat('a9',127),repeat('a10',62), repeat('a11',62),repeat('a12',62),repeat('a13',62),repeat('a14',62),repeat('a15',62),repeat('a16',62), repeat('a17',62),repeat('a18',62),repeat('a19',62),repeat('a20',62),repeat('a21',62), repeat('a22',62),repeat('a23',62),repeat('a24',62),repeat('a25',62),repeat('a26',62), repeat('a27',62),repeat('a28',62),repeat('a29',62),repeat('a30',62),repeat('a31',62), repeat('a32',62),repeat('a33',62),repeat('a34',62),repeat('a35',62),repeat('a36',62), repeat('a37',62),repeat('a38',62),repeat('a39',62),repeat('a40',62),repeat('a41',62), repeat('a42',62),repeat('a43',62),repeat('a44',62),repeat('a45',62),repeat('a46',62), repeat('a47',62),repeat('a48',62),repeat('a49',62),repeat('a50',62),repeat('a51',62), repeat('a52',62),repeat('a53',62),repeat('a54',62),repeat('a55',62),repeat('a56',62), repeat('a57',62),repeat('a58',62),repeat('a59',62),repeat('a60',62),repeat('a61',62), repeat('a62',62),repeat('a63',62)); # Check record count 1 SELECT count(*) FROM tab1; # Check record count 0 SELECT count(*) FROM tab2; # Check record count 1 SELECT count(*) FROM tab3; # take the dump when page size is 32K --exec $MYSQL_DUMP --databases test > $MYSQLTEST_VARDIR/tmp/wl5757.sql DROP DATABASE test; # Stop the server which was started with page size 32K --source include/shutdown_mysqld.inc # Remove residue files and data folder of page size 32K let CLEANUP_FOLDER=$MYSQL_TMP_DIR/datadir1/data; --source include/cleanup_folder.inc # Create datadir path,rathan than mtr defaults path --mkdir $MYSQL_TMP_DIR/datadir1/data # Set the bootstrap parameter page size 16k for datadir1 let NEW_CMD = $MYSQLD --no-defaults --initialize-insecure --lc_messages_dir=$MYSQL_SHAREDIR --innodb_page_size=16K --basedir=$MYSQLD_BASEDIR --datadir=$MYSQLD_DATADIR1 --innodb_log_file_size=5M --innodb_log_files_in_group=2 --innodb_undo_tablespaces=0 --init-file=$BOOTSTRAP_SQL</dev/null>>$MYSQLTEST_VARDIR/tmp/bootstrap.log 2>&1; --echo # Run the bootstrap command with page size 16k --exec $NEW_CMD --echo # Start the DB server with page size 16k --replace_result $MYSQLD_DATADIR1 MYSQLD_DATADIR1 --let $restart_parameters="restart: --innodb_page_size=16K --datadir=$MYSQLD_DATADIR1 --innodb_log_file_size=5M --innodb_log_files_in_group=2 --innodb_undo_tablespaces=0" --source include/start_mysqld.inc # page size 16K SELECT @@innodb_page_size; # check strict mode ON SELECT @@innodb_strict_mode; # Here load fails with ERROR 1118 (42000) at line 106: Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC. # Hence running the Load command with force operation, hence added same in above add_suppression function. --exec $MYSQL --force < $MYSQLTEST_VARDIR/tmp/wl5757.sql # Check "Cannot add field col32 in table `test`.`tab1` because after adding it, the row size is 8192" let SEARCH_FILE= $MYSQLTEST_VARDIR/log/mysqld.1.err; let SEARCH_PATTERN = \\[ERROR\\] InnoDB: Cannot add field \\`col32\\` in table \\`test\\`.\\`tab1\\` because after adding it, the row size is 8192; --source include/search_pattern_in_file.inc # Check "Cannot add field col32 in table `test`.`tab2` because after adding it, the row size is 8192" let SEARCH_FILE= $MYSQLTEST_VARDIR/log/mysqld.1.err; let SEARCH_PATTERN = \\[ERROR\\] InnoDB: Cannot add field \\`col32\\` in table \\`test\\`.\\`tab2\\` because after adding it, the row size is 8192; --source include/search_pattern_in_file.inc USE test; # Check tables should exist. SHOW TABLES; # Check table does not exist --error ER_NO_SUCH_TABLE SELECT count(*) FROM tab1; # Check table does not exist --error ER_NO_SUCH_TABLE SELECT count(*) FROM tab2; # Check table does not exist --error ER_NO_SUCH_TABLE SELECT count(*) FROM tab3; # cleanup DROP DATABASE test; # Stop the server which was started with page size 16K --source include/shutdown_mysqld.inc # Remove residue files and data folder of page size 16K let CLEANUP_FOLDER=$MYSQL_TMP_DIR/datadir1/data; --source include/cleanup_folder.inc # Create datadir path,rathan than mtr defaults path --mkdir $MYSQL_TMP_DIR/datadir1/data # Set the bootstrap parameter page size 64k for datadir1 let NEW_CMD = $MYSQLD --no-defaults --initialize-insecure --lc_messages_dir=$MYSQL_SHAREDIR --innodb_page_size=64K --basedir=$MYSQLD_BASEDIR --datadir=$MYSQLD_DATADIR1 --innodb_log_file_size=5M --innodb_log_files_in_group=2 --innodb_undo_tablespaces=0 --init-file=$BOOTSTRAP_SQL</dev/null>>$MYSQLTEST_VARDIR/tmp/bootstrap.log 2>&1; --echo # Run the bootstrap command with page size 64k --exec $NEW_CMD --echo # Start the DB server with page size 64k --replace_result $MYSQLD_DATADIR1 MYSQLD_DATADIR1 --let restart_parameters="restart: --innodb_page_size=64K --datadir=$MYSQLD_DATADIR1 --innodb_log_file_size=5M --innodb_log_files_in_group=2 --innodb_undo_tablespaces=0" --source include/start_mysqld.inc # page size 64K SELECT @@innodb_page_size; # check strict mode ON SELECT @@innodb_strict_mode; # No errors are expected as for 32k/64k the max record length is same, hence compatible --exec $MYSQL --force < $MYSQLTEST_VARDIR/tmp/wl5757.sql USE test; # Check tables should exist. SHOW TABLES; # Check record count 1 SELECT count(*) FROM tab1; # Check record count 0 SELECT count(*) FROM tab2; # Check table does not exist --error ER_NO_SUCH_TABLE SELECT count(*) FROM tab3; SET innodb_strict_mode=Default; --let $restart_parameters= --source include/restart_mysqld.inc --disable_query_log call mtr.add_suppression("\\[ERROR\\] InnoDB: Cannot add field.*"); call mtr.add_suppression("\\[Warning\\] InnoDB: Cannot add field.*"); --enable_query_log --remove_file $BOOTSTRAP_SQL # Remove residue files and data folder of page size 32K let CLEANUP_FOLDER=$MYSQL_TMP_DIR/datadir1/data; --source include/cleanup_folder.inc --rmdir $MYSQL_TMP_DIR/datadir1 --remove_file $MYSQLTEST_VARDIR/tmp/wl5757.sql