Server IP : 172.67.216.182 / Your IP : 172.70.143.3 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/parts/inc/ |
Upload File : |
################################################################################ # inc/partition_engine.inc # # # # Purpose: # # Tests around Create/Alter partitioned tables and storage engine settings # # at different places within the statement. # # This routine is only useful for the partition_<feature>_<engine> tests. # # # # Note: There were some problems in history. # # It looks like a table holds informations about the storage engine # # for # # "the whole table" -> in statement after column list before partitioning # # a partition -> in statement after definition of partition # # a subpartition -> in statement after definition of subpartition # # If there is a CREATE TABLE statement where not at all of these place # # a storage engine is assigned, the server must decide by itself whic # # storage engine to use. # # # #------------------------------------------------------------------------------# # Original Author: mleich # # Original Date: 2006-03-05 # # Change Author: # # Change Date: # # Change: # ################################################################################ --echo --echo #======================================================================== --echo # Checks where the engine is assigned on all supported (CREATE TABLE --echo # statement) positions + basic operations on the tables --echo # Storage engine mixups are currently (2005-12-23) not supported --echo #======================================================================== --disable_warnings DROP TABLE IF EXISTS t1; --enable_warnings # --echo #------------------------------------------------------------------------ --echo # 1 Assignment of storage engine just after column list only --echo #------------------------------------------------------------------------ eval CREATE TABLE t1 ( $column_list ) ENGINE = $engine PARTITION BY HASH(f_int1) PARTITIONS 2; INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig) SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template; --source suite/parts/inc/partition_check.inc DROP TABLE t1; # --echo #------------------------------------------------------------------------ --echo # 2 Assignment of storage engine just after partition or subpartition --echo # name only --echo #------------------------------------------------------------------------ eval CREATE TABLE t1 ( $column_list ) PARTITION BY HASH(f_int1) ( PARTITION part1 STORAGE ENGINE = $engine, PARTITION part2 STORAGE ENGINE = $engine ); INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig) SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template; --source suite/parts/inc/partition_check.inc DROP TABLE t1; eval CREATE TABLE t1 ( $column_list ) PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1) ( PARTITION part1 VALUES LESS THAN ($max_row_div2) (SUBPARTITION subpart11 STORAGE ENGINE = $engine, SUBPARTITION subpart12 STORAGE ENGINE = $engine), PARTITION part2 VALUES LESS THAN $MAX_VALUE (SUBPARTITION subpart21 STORAGE ENGINE = $engine, SUBPARTITION subpart22 STORAGE ENGINE = $engine) ); INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig) SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template; --source suite/parts/inc/partition_check.inc DROP TABLE t1; # --echo #------------------------------------------------------------------------ --echo # 3 Some but not all named partitions or subpartitions get a storage --echo # engine assigned --echo #------------------------------------------------------------------------ --error ER_MIX_HANDLER_ERROR eval CREATE TABLE t1 ( $column_list ) PARTITION BY HASH(f_int1) ( PARTITION part1 STORAGE ENGINE = $engine, PARTITION part2 ); --error ER_MIX_HANDLER_ERROR eval CREATE TABLE t1 ( $column_list ) PARTITION BY HASH(f_int1) ( PARTITION part1 , PARTITION part2 STORAGE ENGINE = $engine ); --error ER_MIX_HANDLER_ERROR eval CREATE TABLE t1 ( $column_list ) PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1) ( PARTITION part1 VALUES LESS THAN ($max_row_div2) (SUBPARTITION subpart11, SUBPARTITION subpart12 STORAGE ENGINE = $engine), PARTITION part2 VALUES LESS THAN $MAX_VALUE (SUBPARTITION subpart21 STORAGE ENGINE = $engine, SUBPARTITION subpart22 STORAGE ENGINE = $engine) ); --error ER_MIX_HANDLER_ERROR eval CREATE TABLE t1 ( $column_list ) PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1) ( PARTITION part1 VALUES LESS THAN ($max_row_div2) (SUBPARTITION subpart11 STORAGE ENGINE = $engine, SUBPARTITION subpart12 STORAGE ENGINE = $engine), PARTITION part2 VALUES LESS THAN $MAX_VALUE (SUBPARTITION subpart21, SUBPARTITION subpart22 ) ); eval CREATE TABLE t1 ( $column_list ) ENGINE = $engine PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1) ( PARTITION part1 VALUES LESS THAN ($max_row_div2) (SUBPARTITION subpart11 STORAGE ENGINE = $engine, SUBPARTITION subpart12 STORAGE ENGINE = $engine), PARTITION part2 VALUES LESS THAN $MAX_VALUE (SUBPARTITION subpart21, SUBPARTITION subpart22 ) ); INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig) SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template; --source suite/parts/inc/partition_check.inc DROP TABLE t1; # --echo #------------------------------------------------------------------------ --echo # 4 Storage engine assignment after partition name + after name of --echo # subpartitions belonging to another partition --echo #------------------------------------------------------------------------ --error ER_MIX_HANDLER_ERROR eval CREATE TABLE t1 ( $column_list ) PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1) ( PARTITION part1 VALUES LESS THAN ($max_row_div2) (SUBPARTITION subpart11, SUBPARTITION subpart12), PARTITION part2 VALUES LESS THAN $MAX_VALUE (SUBPARTITION subpart21 STORAGE ENGINE = $engine, SUBPARTITION subpart22 STORAGE ENGINE = $engine) ); eval CREATE TABLE t1 ( $column_list ) ENGINE = $engine PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1) ( PARTITION part1 VALUES LESS THAN ($max_row_div2) ENGINE = $engine (SUBPARTITION subpart11, SUBPARTITION subpart12), PARTITION part2 VALUES LESS THAN $MAX_VALUE (SUBPARTITION subpart21, SUBPARTITION subpart22 STORAGE ENGINE = $engine) ); DROP TABLE t1; eval CREATE TABLE t1 ( $column_list ) PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1) ( PARTITION part1 VALUES LESS THAN ($max_row_div2) ENGINE = $engine (SUBPARTITION subpart11, SUBPARTITION subpart12), PARTITION part2 VALUES LESS THAN $MAX_VALUE (SUBPARTITION subpart21 STORAGE ENGINE = $engine, SUBPARTITION subpart22 STORAGE ENGINE = $engine) ); INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig) SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template; --source suite/parts/inc/partition_check.inc DROP TABLE t1; eval CREATE TABLE t1 ( $column_list ) PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1) ( PARTITION part1 VALUES LESS THAN ($max_row_div2) (SUBPARTITION subpart11 STORAGE ENGINE = $engine, SUBPARTITION subpart12 STORAGE ENGINE = $engine), PARTITION part2 VALUES LESS THAN $MAX_VALUE ENGINE = $engine (SUBPARTITION subpart21 ENGINE = $engine, SUBPARTITION subpart22) ); INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig) SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template; --source suite/parts/inc/partition_check.inc DROP TABLE t1; # --echo #------------------------------------------------------------------------ --echo # 5 Precedence of storage engine assignments (if there is any) --echo #------------------------------------------------------------------------ --echo # 5.1 Storage engine assignment after column list + after partition --echo # or subpartition name eval CREATE TABLE t1 ( $column_list ) ENGINE = $engine PARTITION BY HASH(f_int1) ( PARTITION part1 STORAGE ENGINE = $engine, PARTITION part2 STORAGE ENGINE = $engine ); INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig) SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template; --source suite/parts/inc/partition_check.inc DROP TABLE t1; eval CREATE TABLE t1 ( $column_list ) PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1) ( PARTITION part1 VALUES LESS THAN ($max_row_div2) (SUBPARTITION subpart11 STORAGE ENGINE = $engine, SUBPARTITION subpart12 STORAGE ENGINE = $engine), PARTITION part2 VALUES LESS THAN $MAX_VALUE (SUBPARTITION subpart21 STORAGE ENGINE = $engine, SUBPARTITION subpart22 STORAGE ENGINE = $engine) ); INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig) SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template; --source suite/parts/inc/partition_check.inc DROP TABLE t1; --echo # 6.2 Storage engine assignment after partition name + after --echo # subpartition name --echo # in partition part + in sub partition part eval CREATE TABLE t1 ( $column_list ) PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1) ( PARTITION part1 VALUES LESS THAN ($max_row_div2) STORAGE ENGINE = $engine (SUBPARTITION subpart11 STORAGE ENGINE = $engine, SUBPARTITION subpart12 STORAGE ENGINE = $engine), PARTITION part2 VALUES LESS THAN $MAX_VALUE (SUBPARTITION subpart21 STORAGE ENGINE = $engine, SUBPARTITION subpart22 STORAGE ENGINE = $engine) ); INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig) SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template; --source suite/parts/inc/partition_check.inc DROP TABLE t1; --echo #------------------------------------------------------------------------ --echo # 6 Session default engine differs from engine used within create table --echo #------------------------------------------------------------------------ eval SET SESSION default_storage_engine=$engine_other; # Bug#16775 Partitions: strange effects on subpartitioned tables, mixed storage engines # Bug#15966 Partitions: crash if session default engine <> engine used in create table eval CREATE TABLE t1 ( $column_list ) PARTITION BY HASH(f_int1) ( PARTITION part1 ENGINE = $engine); INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig) SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template; --source suite/parts/inc/partition_check.inc DROP TABLE t1; # Bug#15966 Partitions: crash if session default engine <> engine used in create table eval CREATE TABLE t1 ( $column_list ) PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1) ( PARTITION part1 VALUES LESS THAN (1000) (SUBPARTITION subpart11 STORAGE ENGINE = $engine, SUBPARTITION subpart12 STORAGE ENGINE = $engine)); INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig) SELECT f_int1,f_int2,f_char1,f_char2,f_charbig FROM t0_template; --source suite/parts/inc/partition_check.inc DROP TABLE t1; eval SET SESSION default_storage_engine=$engine;