Server IP : 172.67.216.182 / Your IP : 162.158.162.185 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_value.inc # # # # Purpose: # # Tests around "exotic" values calculated by the partitioning function # # # #------------------------------------------------------------------------------# # Original Author: mleich # # Original Date: 2006-04-11 # # Change Author: # # Change Date: # # Change: # ################################################################################ --echo --echo This test relies on the CAST() function for partitioning, which --echo is not allowed. Not deleting it yet, as it may have some useful --echo bits in it. See Bug #30581, "partition_value tests use disallowed --echo CAST() function" --echo --disable_parsing --echo --echo #======================================================================== --echo # Calculation of "exotic" results within the partition function --echo # outside of SIGNED BIGINT value range, 0, NULL --echo # column used in partitioning function has type CHAR --echo #======================================================================== --echo # 1. HASH(<check value>) --disable_warnings DROP TABLE IF EXISTS t1; --enable_warnings # eval CREATE TABLE t1 ( $column_list ) PARTITION BY HASH(CAST(f_char1 AS SIGNED INTEGER) * CAST(5.0E+18 AS SIGNED INTEGER)) PARTITIONS 8; let $my_val= 2147483646; eval INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig) VALUES($my_val,$my_val,'$my_val','$my_val','#$my_val#'); eval SELECT COUNT(*) = 1 FROM t1 WHERE f_char1 = '$my_val'; let $my_val= -2147483646; eval INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig) VALUES($my_val,$my_val,'$my_val','$my_val','#$my_val#'); eval SELECT COUNT(*) = 1 FROM t1 WHERE f_char1 = '$my_val'; let $my_val= 0; eval INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig) VALUES($my_val,$my_val,'$my_val','$my_val','#$my_val#'); eval SELECT COUNT(*) = 1 FROM t1 WHERE f_char1 = '$my_val'; # let $my_val= NULL; eval INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig) VALUES(NULL,NULL,NULL,NULL,NULL); eval SELECT COUNT(*) = 1 FROM t1 WHERE f_char1 IS NULL; DROP TABLE t1; # --echo # 2. RANGE(<check value>) eval CREATE TABLE t1 ( $column_list ) PARTITION BY RANGE(CAST(f_char1 AS SIGNED INTEGER) * CAST(5.0E+18 AS SIGNED INTEGER)) (PARTITION p0 VALUES LESS THAN (0), PARTITION p1 VALUES LESS THAN (1000000), PARTITION p2 VALUES LESS THAN MAXVALUE); let $my_val= 2147483646; eval INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig) VALUES($my_val,$my_val,'$my_val','$my_val','#$my_val#'); eval SELECT COUNT(*) = 1 FROM t1 WHERE f_char1 = '$my_val'; let $my_val= -2147483646; eval INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig) VALUES($my_val,$my_val,'$my_val','$my_val','#$my_val#'); eval SELECT COUNT(*) = 1 FROM t1 WHERE f_char1 = '$my_val'; let $my_val= 0; eval INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig) VALUES($my_val,$my_val,'$my_val','$my_val','#$my_val#'); eval SELECT COUNT(*) = 1 FROM t1 WHERE f_char1 = '$my_val'; # let $my_val= NULL; eval INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig) VALUES(NULL,NULL,NULL,NULL,NULL); eval SELECT COUNT(*) = 1 FROM t1 WHERE f_char1 IS NULL; DROP TABLE t1; # # The NDB handler only supports 32 bit integers in VALUES # therefor we have to skip the next test for NDB. if (`SELECT @@session.default_storage_engine NOT IN('ndbcluster')`) { --echo # 3. LIST(<check value>) eval CREATE TABLE t1 ( $column_list ) PARTITION BY LIST(CAST(f_char1 AS SIGNED INTEGER) * CAST(5.0E+18 AS SIGNED INTEGER)) (PARTITION p0 VALUES IN (0), PARTITION p1 VALUES IN (NULL), PARTITION p2 VALUES IN (CAST( 2147483646 AS SIGNED INTEGER) * CAST(5.0E+18 AS SIGNED INTEGER)), PARTITION p3 VALUES IN (CAST(-2147483646 AS SIGNED INTEGER) * CAST(5.0E+18 AS SIGNED INTEGER))); let $my_val= 2147483646; eval INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig) VALUES($my_val,$my_val,'$my_val','$my_val','#$my_val#'); eval SELECT COUNT(*) = 1 FROM t1 WHERE f_char1 = '$my_val'; let $my_val= -2147483646; eval INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig) VALUES($my_val,$my_val,'$my_val','$my_val','#$my_val#'); eval SELECT COUNT(*) = 1 FROM t1 WHERE f_char1 = '$my_val'; let $my_val= 0; eval INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig) VALUES($my_val,$my_val,'$my_val','$my_val','#$my_val#'); eval SELECT COUNT(*) = 1 FROM t1 WHERE f_char1 = '$my_val'; # let $my_val= NULL; eval INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig) VALUES(NULL,NULL,NULL,NULL,NULL); eval SELECT COUNT(*) = 1 FROM t1 WHERE f_char1 IS NULL; DROP TABLE t1; } # --echo # 4. Partition by RANGE(...) subpartition by HASH(<check value>) eval CREATE TABLE t1 ( $column_list ) PARTITION BY RANGE(CAST(f_char1 AS SIGNED INTEGER)) SUBPARTITION BY HASH(CAST(f_char2 AS SIGNED INTEGER) * CAST(5.0E+18 AS SIGNED INTEGER)) SUBPARTITIONS 4 (PARTITION p0 VALUES LESS THAN (0), PARTITION p1 VALUES LESS THAN MAXVALUE); let $my_val= 2147483646; eval INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig) VALUES($my_val,$my_val,'1','$my_val','#$my_val#'); eval SELECT COUNT(*) = 1 FROM t1 WHERE f_char2 = '$my_val'; let $my_val= -2147483646; eval INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig) VALUES($my_val,$my_val,'-1','$my_val','#$my_val#'); eval SELECT COUNT(*) = 1 FROM t1 WHERE f_char2 = '$my_val'; let $my_val= 0; eval INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig) VALUES($my_val,$my_val,'$my_val','$my_val','#$my_val#'); eval SELECT COUNT(*) = 1 FROM t1 WHERE f_char2 = '$my_val'; # let $my_val= NULL; eval INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig) VALUES(NULL,NULL,NULL,NULL,NULL); eval SELECT COUNT(*) = 1 FROM t1 WHERE f_char2 IS NULL; DROP TABLE t1; # --echo # 5. Partition by LIST(...) subpartition by HASH(<check value>) eval CREATE TABLE t1 ( $column_list ) PARTITION BY LIST(CAST(f_char1 AS SIGNED INTEGER)) SUBPARTITION BY HASH(CAST(f_char2 AS SIGNED INTEGER) * CAST(5.0E+18 AS SIGNED INTEGER)) SUBPARTITIONS 4 (PARTITION p0 VALUES IN (NULL), PARTITION p1 VALUES IN (1)); let $my_val= 2147483646; eval INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig) VALUES($my_val,$my_val,'1','$my_val','#$my_val#'); eval SELECT COUNT(*) = 1 FROM t1 WHERE f_char2 = '$my_val'; let $my_val= -2147483646; eval INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig) VALUES($my_val,$my_val,'1','$my_val','#$my_val#'); eval SELECT COUNT(*) = 1 FROM t1 WHERE f_char2 = '$my_val'; let $my_val= 0; eval INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig) VALUES($my_val,$my_val,'1','$my_val','#$my_val#'); eval SELECT COUNT(*) = 1 FROM t1 WHERE f_char2 = '$my_val'; # let $my_val= NULL; eval INSERT INTO t1(f_int1,f_int2,f_char1,f_char2,f_charbig) VALUES(NULL,NULL,NULL,NULL,NULL); eval SELECT COUNT(*) = 1 FROM t1 WHERE f_char2 IS NULL; DROP TABLE t1; # --enable_parsing