Commit a7f2f951 authored by unknown's avatar unknown

Merge dator6.(none):/home/mikael/mysql_clones/bug32943

into  dator6.(none):/home/mikael/mysql_clones/mysql-5.1-engines


sql/sql_partition.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
mysql-test/r/partition_range.result:
  manual merge
mysql-test/t/partition_range.test:
  manual merge
parents 911a85d5 3fce8cf1
This diff is collapsed.
...@@ -2,6 +2,9 @@ ...@@ -2,6 +2,9 @@
# #
# Check cpu of current machine and find the # Check cpu of current machine and find the
# best compiler optimization flags for gcc # best compiler optimization flags for gcc
# Will return result in:
# cpu_arg : Type of CPU
# check_cpu_args : Arguments for GCC compiler settings
# #
check_cpu () { check_cpu () {
...@@ -33,7 +36,7 @@ check_cpu () { ...@@ -33,7 +36,7 @@ check_cpu () {
# parse CPU flags # parse CPU flags
for flag in `$cpuinfo | grep '^flags' | sed -e 's/^flags.*: //' -e 's/[^a-zA-Z0-9_ ]/_/g'`; do for flag in `$cpuinfo | grep '^flags' | sed -e 's/^flags.*: //' -e 's/[^a-zA-Z0-9_ ]/_/g'`; do
eval cpu_flag_$flag=yes eval cpu_flag_$flag=yes
done done
else else
# Fallback when there is no /proc/cpuinfo # Fallback when there is no /proc/cpuinfo
...@@ -62,92 +65,95 @@ check_cpu () { ...@@ -62,92 +65,95 @@ check_cpu () {
Alpha*EV6*) Alpha*EV6*)
cpu_arg="ev6"; cpu_arg="ev6";
;; ;;
# Intel ia32 # Intel ia32
*Intel*Core*|*X[eE][oO][nN]*) *Intel*Core*|*X[eE][oO][nN]*)
# a Xeon is just another pentium4 ... # a Xeon is just another pentium4 ...
# ... unless it has the "lm" (long-mode) flag set, # ... unless it has the "lm" (long-mode) flag set,
# in that case it's a Xeon with EM64T support # in that case it's a Xeon with EM64T support
# If SSE3 support exists it is a Core2 Duo or newer
# So is Intel Core. # So is Intel Core.
if [ -z "$cpu_flag_lm" ]; then if [ -z "$cpu_flag_lm" ]; then
cpu_arg="pentium4"; cpu_arg="pentium4"
else else
cpu_arg="nocona"; cpu_arg="nocona"
fi
if test -z "$cpu_flag_ssse3" ; then
core2="no"
else
core2="yes"
fi fi
;; ;;
*Pentium*4*Mobile*) *Pentium*4*Mobile*)
cpu_arg="pentium4m"; cpu_arg="pentium4m"
;; ;;
*Pentium*4*) *Pentium*4*)
cpu_arg="pentium4"; cpu_arg="pentium4"
;; ;;
*Pentium*III*Mobile*) *Pentium*III*Mobile*)
cpu_arg="pentium3m"; cpu_arg="pentium3m"
;; ;;
*Pentium*III*) *Pentium*III*)
cpu_arg="pentium3"; cpu_arg="pentium3"
;; ;;
*Pentium*M*pro*) *Pentium*M*pro*)
cpu_arg="pentium-m"; cpu_arg="pentium-m"
;; ;;
*Celeron\(R\)*\ M*) *Celeron\(R\)*\ M*)
cpu_arg="pentium-m"; cpu_arg="pentium-m"
;; ;;
*Celeron*Coppermine*) *Celeron*Coppermine*)
cpu_arg="pentium3" cpu_arg="pentium3"
;; ;;
*Celeron\(R\)*) *Celeron\(R\)*)
cpu_arg="pentium4" cpu_arg="pentium4"
;; ;;
*Celeron*) *Celeron*)
cpu_arg="pentium2"; cpu_arg="pentium2"
;;
*Athlon*64*)
cpu_arg="athlon64";
;; ;;
*Turion*) *Turion*)
cpu_arg="athlon64"; cpu_arg="athlon64"
;; ;;
*Opteron*) *Athlon*64*)
cpu_arg="athlon64"; cpu_arg="athlon64"
;; ;;
*Athlon*) *Athlon*)
cpu_arg="athlon"; cpu_arg="athlon"
;; ;;
*Opteron*) *Opteron*)
cpu_arg="opteron"; cpu_arg="opteron"
;; ;;
# MacOSX / Intel # MacOSX / Intel
*i386*i486*) *i386*i486*)
cpu_arg="pentium-m"; cpu_arg="pentium-m"
;;
*i386*)
cpu_arg="i386"
;; ;;
#Core 2 Duo #Core 2 Duo
*Intel*Core\(TM\)2*) *Intel*Core\(TM\)2*)
cpu_arg="nocona"; cpu_arg="nocona"
;; ;;
# Intel ia64 # Intel ia64
*Itanium*) *Itanium*)
# Don't need to set any flags for itanium(at the moment) cpu_arg="itanium"
cpu_arg="";
;; ;;
# Solaris Sparc
# *sparc*sun4u*)
cpu_arg="sparc"
;;
# Power PC
*ppc*) *ppc*)
cpu_arg='powerpc' cpu_arg="powerpc"
;; ;;
*powerpc*) *powerpc*)
cpu_arg='powerpc' cpu_arg="powerpc"
;; ;;
# unknown # unknown
*) *)
cpu_arg=""; cpu_arg=""
;; ;;
esac esac
if test -z "$cpu_arg" ; then if test -z "$cpu_arg" ; then
if test "$CPUINFO" != " " ; then if test "$CPUINFO" != " " ; then
# fallback to uname if necessary # fallback to uname if necessary
...@@ -176,29 +182,22 @@ check_cpu () { ...@@ -176,29 +182,22 @@ check_cpu () {
cc_minor=$2 cc_minor=$2
cc_patch=$3 cc_patch=$3
cc_comp=`expr $cc_major '*' 100 '+' $cc_minor` cc_comp=`expr $cc_major '*' 100 '+' $cc_minor`
case "$cc_ver--$cc_verno" in case "$cc_ver--$cc_verno" in
*GCC*) *GCC*)
# different gcc backends (and versions) have different CPU flags # different gcc backends (and versions) have different CPU flags
case `gcc -dumpmachine` in case `gcc -dumpmachine` in
i?86-*) i?86-* | x86_64-*)
if test "$cc_comp" -lt 304 if test "$cc_comp" -lt 304 ; then
then check_cpu_cflags="-mcpu=${cpu_arg}"
check_cpu_args='-mcpu=$cpu_arg' elif test "$cc_comp" -ge 402 ; then
check_cpu_cflags="-mtune=native"
else else
check_cpu_args='-mtune=$cpu_arg' check_cpu_cflags="-mtune=${cpu_arg}"
fi fi
;; ;;
ppc-*) ppc-*)
check_cpu_args='-mcpu=$cpu_arg -mtune=$cpu_arg' check_cpu_cflags="-mcpu=${cpu_arg} -mtune=${cpu_arg}"
;;
x86_64-*)
if test "$cc_comp" -lt 304
then
check_cpu_args='-mcpu=$cpu_arg'
else
check_cpu_args='-mtune=$cpu_arg'
fi
;; ;;
*) *)
check_cpu_cflags="" check_cpu_cflags=""
...@@ -208,7 +207,7 @@ check_cpu () { ...@@ -208,7 +207,7 @@ check_cpu () {
;; ;;
2.95.*) 2.95.*)
# GCC 2.95 doesn't expose its name in --version output # GCC 2.95 doesn't expose its name in --version output
check_cpu_args='-m$cpu_arg' check_cpu_cflags="-m${cpu_arg}"
;; ;;
*) *)
check_cpu_cflags="" check_cpu_cflags=""
...@@ -219,41 +218,23 @@ check_cpu () { ...@@ -219,41 +218,23 @@ check_cpu () {
# now we check whether the compiler really understands the cpu type # now we check whether the compiler really understands the cpu type
touch __test.c touch __test.c
if test "x$core2" = "xyes" ; then
cpu_arg="core2"
fi
while [ "$cpu_arg" ] ; do while [ "$cpu_arg" ] ; do
printf "testing $cpu_arg ... " >&2 printf "testing $cpu_arg ... " >&2
# compile check # compile check
check_cpu_cflags=`eval echo $check_cpu_args` eval "$cc -c $check_cpu_cflags __test.c" 2>/dev/null
if $cc -c $check_cpu_cflags __test.c 2>/dev/null; then if test "x$?" = "x0" ; then
echo ok >&2 echo ok >&2
break; break;
fi fi
echo failed >&2 echo failed >&2
check_cpu_cflags="" check_cpu_cflags=""
break;
# if compile failed: check whether it supports a predecessor of this CPU
# this list is not complete, feel free to add further entries
case "$cpu_arg" in
# Intel ia32
nocona) cpu_arg=pentium4 ;;
prescott) cpu_arg=pentium4 ;;
pentium4m) cpu_arg=pentium4 ;;
pentium4) cpu_arg=pentium3 ;;
pentium3m) cpu_arg=pentium3 ;;
pentium3) cpu_arg=pentium2 ;;
pentium2) cpu_arg=pentiumpro ;;
pentiumpro) cpu_arg=pentium ;;
pentium) cpu_arg=i486 ;;
i486) cpu_arg=i386 ;;
# power / powerPC
7450) cpu_arg=7400 ;;
*) cpu_arg="" ;;
esac
done done
rm __test.* rm __test.*
} }
......
...@@ -5379,4 +5379,13 @@ SHOW WARNINGS; ...@@ -5379,4 +5379,13 @@ SHOW WARNINGS;
Level Code Message Level Code Message
Error 1178 The storage engine for the table doesn't support nullable columns Error 1178 The storage engine for the table doesn't support nullable columns
Error 1005 Can't create table 'test.t1' (errno: 138) Error 1005 Can't create table 'test.t1' (errno: 138)
create table t1 (c1 tinyblob not null) engine=csv;
insert into t1 values("This");
update t1 set c1="That" where c1="This";
affected rows: 1
info: Rows matched: 1 Changed: 1 Warnings: 0
select * from t1;
c1
That
drop table t1;
End of 5.1 tests End of 5.1 tests
...@@ -21,4 +21,14 @@ INSERT INTO t1 VALUES('A', 'A'), ('B', 'B'), ('C', 'C'); ...@@ -21,4 +21,14 @@ INSERT INTO t1 VALUES('A', 'A'), ('B', 'B'), ('C', 'C');
INSERT INTO t1 VALUES('A ', 'A '); INSERT INTO t1 VALUES('A ', 'A ');
ERROR 23000: Duplicate entry '' for key 'key1' ERROR 23000: Duplicate entry '' for key 'key1'
DROP TABLE t1; DROP TABLE t1;
CREATE TABLE t1 (
c1 CHAR(255) CHARACTER SET UCS2 COLLATE UCS2_BIN NOT NULL,
KEY(c1)
) ENGINE=MyISAM;
INSERT INTO t1 VALUES ('marshall\'s');
INSERT INTO t1 VALUES ('marsh');
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
test.t1 check status OK
DROP TABLE t1;
End of 5.0 tests End of 5.0 tests
...@@ -2023,4 +2023,185 @@ CHECK TABLE t1; ...@@ -2023,4 +2023,185 @@ CHECK TABLE t1;
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t1 check status OK test.t1 check status OK
DROP TABLE t1; DROP TABLE t1;
CREATE TABLE t1 (
c1 CHAR(130),
c2 VARCHAR(1)
) ENGINE=MyISAM;
INSERT INTO t1 VALUES(REPEAT("a",128), 'b');
SELECT COUNT(*) FROM t1;
COUNT(*)
1
CHECK TABLE t1;
Table Op Msg_type Msg_text
test.t1 check status OK
REPAIR TABLE t1;
Table Op Msg_type Msg_text
test.t1 repair status OK
SELECT COUNT(*) FROM t1;
COUNT(*)
1
CHECK TABLE t1;
Table Op Msg_type Msg_text
test.t1 check status OK
DROP TABLE t1;
CREATE TABLE t1 (
c1 CHAR(130),
c2 VARCHAR(1)
) ENGINE=MyISAM;
INSERT INTO t1 VALUES(REPEAT("a",128), 'b');
SELECT COUNT(*) FROM t1;
COUNT(*)
1
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
test.t1 check status OK
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
test.t1 repair status OK
SELECT COUNT(*) FROM t1;
COUNT(*)
1
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
test.t1 check status OK
DROP TABLE t1;
CREATE TABLE t1 (
c1 CHAR(130),
c2 VARCHAR(1)
) ENGINE=MyISAM;
INSERT INTO t1 VALUES(REPEAT("a",128), 'b');
INSERT INTO t1 VALUES('b', 'b');
INSERT INTO t1 VALUES('c', 'b');
DELETE FROM t1 WHERE c1='b';
SELECT COUNT(*) FROM t1;
COUNT(*)
2
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
test.t1 optimize status OK
SELECT COUNT(*) FROM t1;
COUNT(*)
2
DROP TABLE t1;
CREATE TABLE t1 (
c1 CHAR(130),
c2 VARCHAR(1),
KEY (c1)
) ENGINE=MyISAM;
# Insert 100 rows. Query log disabled.
UPDATE t1 SET c1=REPEAT("a",128) LIMIT 90;
SELECT COUNT(*) FROM t1;
COUNT(*)
100
ALTER TABLE t1 ENGINE=MyISAM;
SELECT COUNT(*) FROM t1;
COUNT(*)
100
CHECK TABLE t1;
Table Op Msg_type Msg_text
test.t1 check status OK
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
test.t1 check status OK
DROP TABLE t1;
CREATE TABLE t1 (
c1 CHAR(50),
c2 VARCHAR(1)
) ENGINE=MyISAM DEFAULT CHARSET UTF8;
INSERT INTO t1 VALUES(REPEAT(_utf8 x'e0ae85',43), 'b');
SELECT COUNT(*) FROM t1;
COUNT(*)
1
CHECK TABLE t1;
Table Op Msg_type Msg_text
test.t1 check status OK
REPAIR TABLE t1;
Table Op Msg_type Msg_text
test.t1 repair status OK
SELECT COUNT(*) FROM t1;
COUNT(*)
1
CHECK TABLE t1;
Table Op Msg_type Msg_text
test.t1 check status OK
DROP TABLE t1;
CREATE TABLE t1 (
c1 CHAR(50),
c2 VARCHAR(1)
) ENGINE=MyISAM DEFAULT CHARSET UTF8;
INSERT INTO t1 VALUES(REPEAT(_utf8 x'e0ae85',43), 'b');
SELECT COUNT(*) FROM t1;
COUNT(*)
1
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
test.t1 check status OK
REPAIR TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
test.t1 repair status OK
SELECT COUNT(*) FROM t1;
COUNT(*)
1
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
test.t1 check status OK
DROP TABLE t1;
CREATE TABLE t1 (
c1 CHAR(50),
c2 VARCHAR(1)
) ENGINE=MyISAM DEFAULT CHARSET UTF8;
INSERT INTO t1 VALUES(REPEAT(_utf8 x'e0ae85',43), 'b');
INSERT INTO t1 VALUES('b', 'b');
INSERT INTO t1 VALUES('c', 'b');
DELETE FROM t1 WHERE c1='b';
SELECT COUNT(*) FROM t1;
COUNT(*)
2
OPTIMIZE TABLE t1;
Table Op Msg_type Msg_text
test.t1 optimize status OK
SELECT COUNT(*) FROM t1;
COUNT(*)
2
DROP TABLE t1;
CREATE TABLE t1 (
c1 CHAR(50),
c2 VARCHAR(1),
KEY (c1)
) ENGINE=MyISAM DEFAULT CHARSET UTF8;
# Insert 100 rows. Query log disabled.
UPDATE t1 SET c1=REPEAT(_utf8 x'e0ae85',43) LIMIT 90;
SELECT COUNT(*) FROM t1;
COUNT(*)
100
ALTER TABLE t1 ENGINE=MyISAM;
SELECT COUNT(*) FROM t1;
COUNT(*)
100
CHECK TABLE t1;
Table Op Msg_type Msg_text
test.t1 check status OK
CHECK TABLE t1 EXTENDED;
Table Op Msg_type Msg_text
test.t1 check status OK
DROP TABLE t1;
CREATE TABLE t1 (
c1 VARCHAR(10) NOT NULL,
c2 CHAR(10) DEFAULT NULL,
c3 VARCHAR(10) NOT NULL,
KEY (c1),
KEY (c2)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0;
MyISAM file: MYSQLTEST_VARDIR/master-data/test/t1
Record format: Packed
Character set: utf8_general_ci (33)
Data records: 0 Deleted blocks: 0
Recordlength: 94
table description:
Key Start Len Index Type
1 2 30 multip. varchar
2 33 30 multip. char NULL
DROP TABLE t1;
End of 5.1 tests End of 5.1 tests
drop table if exists t1; drop table if exists t1;
create table t1 (a int) partition by list ((a/3)*10 div 1)
(partition p0 values in (0), partition p1 values in (1));
ERROR HY000: This partition function is not allowed
CREATE TABLE t1 ( CREATE TABLE t1 (
d DATE NOT NULL d DATE NOT NULL
) )
...@@ -44,15 +47,6 @@ partition by key(a) ...@@ -44,15 +47,6 @@ partition by key(a)
partitions 1e+300; partitions 1e+300;
ERROR 42000: Only integers allowed as number here near '1e+300' at line 3 ERROR 42000: Only integers allowed as number here near '1e+300' at line 3
create table t1 (a int) create table t1 (a int)
partition by key (a)
(partition p0 DATA DIRECTORY 'part-data' INDEX DIRECTORY 'part-data');
ERROR 42000: Incorrect table name 'part-data'
create table t1 (a int)
partition by key (a)
(partition p0,
partition p1 DATA DIRECTORY 'part-data' INDEX DIRECTORY 'part-data');
ERROR 42000: Incorrect table name 'part-data'
create table t1 (a int)
partition by list (a) partition by list (a)
(partition p0 values in (1)); (partition p0 values in (1));
create procedure pz() create procedure pz()
...@@ -1207,25 +1201,6 @@ SELECT t2.id FROM t2 WHERE t2.id IN (SELECT id FROM t1 WHERE status = 'Verified' ...@@ -1207,25 +1201,6 @@ SELECT t2.id FROM t2 WHERE t2.id IN (SELECT id FROM t1 WHERE status = 'Verified'
id id
22589 22589
drop table t1, t2; drop table t1, t2;
set @org_mode=@@sql_mode;
set @@sql_mode='NO_DIR_IN_CREATE';
select @@sql_mode;
@@sql_mode
NO_DIR_IN_CREATE
create table t1 (i int )
partition by range (i)
(
partition p01 values less than (1000)
data directory='/not/existing'
index directory='/not/existing'
);
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
`i` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (i) (PARTITION p01 VALUES LESS THAN (1000) ENGINE = MyISAM) */
DROP TABLE t1, t2;
set @@sql_mode=@org_mode;
create table t1 (c1 varchar(255),c2 tinyint,primary key(c1)) create table t1 (c1 varchar(255),c2 tinyint,primary key(c1))
partition by key (c1) partitions 10 ; partition by key (c1) partitions 10 ;
insert into t1 values ('aaa','1') on duplicate key update c2 = c2 + 1; insert into t1 values ('aaa','1') on duplicate key update c2 = c2 + 1;
......
drop table if exists t1; drop table if exists t1;
# test with not null
create table t1 (a bit not null) partition by key (a);
insert into t1 values (b'1');
select hex(a) from t1 where a = b'1';
hex(a)
1
drop table t1;
create table t1 (a tinyint not null) partition by key (a); create table t1 (a tinyint not null) partition by key (a);
insert into t1 values (2); insert into t1 values (2);
select * from t1 where a = 2; select * from t1 where a = 2;
...@@ -30,22 +37,22 @@ a ...@@ -30,22 +37,22 @@ a
2 2
drop table t1; drop table t1;
create table t1 (a float not null) partition by key (a); create table t1 (a float not null) partition by key (a);
insert into t1 values (2.1); insert into t1 values (0.5);
select * from t1 where a = 2.1; select * from t1 where a = 0.5;
a a
0.5
drop table t1; drop table t1;
create table t1 (a double not null) partition by key (a); create table t1 (a double not null) partition by key (a);
insert into t1 values (2.1); insert into t1 values (0.5);
select * from t1 where a = 2.1; select * from t1 where a = 0.5;
a a
2.1 0.5
drop table t1; drop table t1;
create table t1 (a decimal not null) partition by key (a); create table t1 (a decimal(4,2) not null) partition by key (a);
insert into t1 values (2.1); insert into t1 values (2.1);
Warnings:
Note 1265 Data truncated for column 'a' at row 1
select * from t1 where a = 2.1; select * from t1 where a = 2.1;
a a
2.10
drop table t1; drop table t1;
create table t1 (a date not null) partition by key (a); create table t1 (a date not null) partition by key (a);
insert into t1 values ('2001-01-01'); insert into t1 values ('2001-01-01');
...@@ -125,6 +132,13 @@ select * from t1 where a = 'y'; ...@@ -125,6 +132,13 @@ select * from t1 where a = 'y';
a a
y y
drop table t1; drop table t1;
# test with null allowed
create table t1 (a bit) partition by key (a);
insert into t1 values (b'1');
select hex(a) from t1 where a = b'1';
hex(a)
1
drop table t1;
create table t1 (a tinyint) partition by key (a); create table t1 (a tinyint) partition by key (a);
insert into t1 values (2); insert into t1 values (2);
select * from t1 where a = 2; select * from t1 where a = 2;
...@@ -156,22 +170,22 @@ a ...@@ -156,22 +170,22 @@ a
2 2
drop table t1; drop table t1;
create table t1 (a float) partition by key (a); create table t1 (a float) partition by key (a);
insert into t1 values (2.1); insert into t1 values (0.5);
select * from t1 where a = 2.1; select * from t1 where a = 0.5;
a a
0.5
drop table t1; drop table t1;
create table t1 (a double) partition by key (a); create table t1 (a double) partition by key (a);
insert into t1 values (2.1); insert into t1 values (0.5);
select * from t1 where a = 2.1; select * from t1 where a = 0.5;
a a
2.1 0.5
drop table t1; drop table t1;
create table t1 (a decimal) partition by key (a); create table t1 (a decimal(4,2)) partition by key (a);
insert into t1 values (2.1); insert into t1 values (2.1);
Warnings:
Note 1265 Data truncated for column 'a' at row 1
select * from t1 where a = 2.1; select * from t1 where a = 2.1;
a a
2.10
drop table t1; drop table t1;
create table t1 (a date) partition by key (a); create table t1 (a date) partition by key (a);
insert into t1 values ('2001-01-01'); insert into t1 values ('2001-01-01');
...@@ -254,25 +268,41 @@ drop table t1; ...@@ -254,25 +268,41 @@ drop table t1;
create table t1 (a varchar(65531)) partition by key (a); create table t1 (a varchar(65531)) partition by key (a);
insert into t1 values ('bbbb'); insert into t1 values ('bbbb');
insert into t1 values ('aaaa'); insert into t1 values ('aaaa');
select * from t1 where a = 'aaa%'; select * from t1 where a = 'aaaa';
a a
aaaa
select * from t1 where a like 'aaa%'; select * from t1 where a like 'aaa%';
a a
aaaa aaaa
select * from t1 where a = 'bbbb';
a
bbbb
drop table t1; drop table t1;
create table t1 (a varchar(65532)) partition by key (a); create table t1 (a varchar(65532)) partition by key (a);
insert into t1 values ('bbbb'); insert into t1 values ('bbbb');
insert into t1 values ('aaaa'); insert into t1 values ('aaaa');
select * from t1 where a = 'aaa%'; select * from t1 where a = 'aaaa';
a a
aaaa
select * from t1 where a like 'aaa%'; select * from t1 where a like 'aaa%';
a a
aaaa aaaa
select * from t1 where a = 'bbbb';
a
bbbb
drop table t1; drop table t1;
create table t1 (a varchar(65533) not null) partition by key (a); create table t1 (a varchar(65533) not null) partition by key (a);
insert into t1 values ('bbbb');
insert into t1 values ('aaaa'); insert into t1 values ('aaaa');
select * from t1 where a = 'aaa%'; select * from t1 where a = 'aaaa';
a
aaaa
select * from t1 where a like 'aaa%';
a a
aaaa
select * from t1 where a = 'bbbb';
a
bbbb
drop table t1; drop table t1;
create table t1 (a varchar(65533)) partition by key (a); create table t1 (a varchar(65533)) partition by key (a);
ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs
...@@ -280,3 +310,17 @@ create table t1 (a varchar(65534) not null) partition by key (a); ...@@ -280,3 +310,17 @@ create table t1 (a varchar(65534) not null) partition by key (a);
ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs
create table t1 (a varchar(65535)) partition by key (a); create table t1 (a varchar(65535)) partition by key (a);
ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs
create table t1 (a bit(27), primary key (a)) engine=myisam
partition by hash (a)
(partition p0, partition p1, partition p2);
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` bit(27) NOT NULL DEFAULT '\0\0\0\0',
PRIMARY KEY (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (a) (PARTITION p0 ENGINE = MyISAM, PARTITION p1 ENGINE = MyISAM, PARTITION p2 ENGINE = MyISAM) */
insert into t1 values (1),(4),(7),(10),(13),(16),(19),(22),(25),(28),(31),(34);
select hex(a) from t1 where a = 7;
hex(a)
7
drop table t1;
drop table if exists t1, t2; drop table if exists t1, t2;
create table t1 (a int)
partition by range (a)
( partition p0 values less than (maxvalue));
alter table t1 add partition (partition p1 values less than (100000));
ERROR HY000: MAXVALUE can only be used in last partition definition
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION p0 VALUES LESS THAN MAXVALUE ENGINE = MyISAM) */
drop table t1;
create table t1 (a integer) create table t1 (a integer)
partition by range (a) partition by range (a)
( partition p0 values less than (4), ( partition p0 values less than (4),
......
...@@ -81,3 +81,34 @@ Got one of the listed errors ...@@ -81,3 +81,34 @@ Got one of the listed errors
DROP DATABASE mysqltest2; DROP DATABASE mysqltest2;
USE test; USE test;
DROP USER mysqltest_1@localhost; DROP USER mysqltest_1@localhost;
set @org_mode=@@sql_mode;
set @@sql_mode='NO_DIR_IN_CREATE';
select @@sql_mode;
@@sql_mode
NO_DIR_IN_CREATE
create table t1 (i int )
partition by range (i)
(
partition p01 values less than (1000)
data directory='/not/existing'
index directory='/not/existing'
);
Warnings:
Warning 0 DATA DIRECTORY option ignored
Warning 0 INDEX DIRECTORY option ignored
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
`i` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (i) (PARTITION p01 VALUES LESS THAN (1000) ENGINE = MyISAM) */
DROP TABLE t1, t2;
set @@sql_mode=@org_mode;
create table t1 (a int)
partition by key (a)
(partition p0 DATA DIRECTORY 'part-data' INDEX DIRECTORY 'part-data');
ERROR 42000: Incorrect table name 'part-data'
create table t1 (a int)
partition by key (a)
(partition p0,
partition p1 DATA DIRECTORY 'part-data' INDEX DIRECTORY 'part-data');
ERROR 42000: Incorrect table name 'part-data'
DROP TABLE IF EXISTS `example`; DROP TABLE IF EXISTS t1;
CREATE TABLE `example` ( CREATE TABLE t1 (
`ID_EXAMPLE` int(10) unsigned NOT NULL AUTO_INCREMENT, c1 int(10) unsigned NOT NULL AUTO_INCREMENT,
`DESCRIPTION` varchar(30) NOT NULL, c2 varchar(30) NOT NULL,
`LEVEL` smallint(5) unsigned DEFAULT NULL, c3 smallint(5) unsigned DEFAULT NULL,
PRIMARY KEY (`ID_EXAMPLE`) PRIMARY KEY (c1)
) ENGINE = MYISAM ) ENGINE = MYISAM
PARTITION BY HASH(ID_EXAMPLE)( PARTITION BY HASH(c1)(
PARTITION p0 DATA DIRECTORY = 'C:/build/5.1/data/partitiontest/p0Data', PARTITION p0
PARTITION p1 DATA DIRECTORY = 'C:/build/5.1/data/partitiontest/p1Data', DATA DIRECTORY = 'C:/mysqltest/p0Data'
PARTITION p2 DATA DIRECTORY = 'C:/build/5.1/data/partitiontest/p2Data', INDEX DIRECTORY = 'D:/mysqltest/p0Index',
PARTITION p3 DATA DIRECTORY = 'C:/build/5.1/data/partitiontest/p3Data' PARTITION p1,
PARTITION p2
DATA DIRECTORY = 'E:/mysqltest/p2Data'
INDEX DIRECTORY = 'F:/mysqltest/p2Index'
); );
ERROR HY000: Can't create/write to file 'C:\build\5.1\data\partitiontest\p0Data\example#P#p0.MYD' (Errcode: 2) Warnings:
Warning 0 DATA DIRECTORY option ignored
Warning 0 INDEX DIRECTORY option ignored
Warning 0 DATA DIRECTORY option ignored
Warning 0 INDEX DIRECTORY option ignored
INSERT INTO t1 VALUES (NULL, "first", 1);
INSERT INTO t1 VALUES (NULL, "second", 2);
INSERT INTO t1 VALUES (NULL, "third", 3);
ALTER TABLE t1 ADD PARTITION (PARTITION p3 DATA DIRECTORY = 'G:/mysqltest/p3Data' INDEX DIRECTORY = 'H:/mysqltest/p3Index');
Warnings:
Warning 0 DATA DIRECTORY option ignored
Warning 0 INDEX DIRECTORY option ignored
INSERT INTO t1 VALUES (NULL, "last", 4);
DROP TABLE t1;
SELECT @@global.example_enum_var = 'e2';
@@global.example_enum_var = 'e2'
1
...@@ -162,3 +162,11 @@ DROP DATABASE db1; ...@@ -162,3 +162,11 @@ DROP DATABASE db1;
DROP DATABASE db2; DROP DATABASE db2;
USE test; USE test;
End of 5.0 tests End of 5.0 tests
SET @OLD_SQL_MODE=@@SQL_MODE, @@SQL_MODE='NO_DIR_IN_CREATE';
CREATE TABLE t1(a INT) DATA DIRECTORY='MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY='MYSQLTEST_VARDIR/tmp';
Warnings:
Warning 0 DATA DIRECTORY option ignored
Warning 0 INDEX DIRECTORY option ignored
DROP TABLE t1;
SET @@SQL_MODE=@OLD_SQL_MODE;
End of 5.1 tests
...@@ -30,29 +30,6 @@ ...@@ -30,29 +30,6 @@
let $unique= ; let $unique= ;
--source suite/parts/inc/partition_methods1.inc --source suite/parts/inc/partition_methods1.inc
# #
--echo # 1.1.1 with DATA DIECTORY/INDEX DIRECTORY
#
--disable_query_log
# DATA DIRECTORY
# Make directory for partition data
--exec mkdir $MYSQLTEST_VARDIR/master-data/test/data || true
eval SET @data_dir = 'DATA DIRECTORY =
''''$MYSQLTEST_VARDIR/master-data/test/data''''';
let $data_directory = `select @data_dir`;
#INDEX DIRECTORY
# Make directory for partition index
--exec mkdir $MYSQLTEST_VARDIR/master-data/test/index || true
eval SET @indx_dir = 'INDEX DIRECTORY =
''''$MYSQLTEST_VARDIR/master-data/test/index''''';
let $index_directory = `select @indx_dir`;
let $with_directories= 1;
--source suite/parts/inc/partition_methods1.inc
--source suite/parts/inc/partition_directory.inc
let $with_directories= 0;
--enable_query_log
#
--echo # 1.2 The partitioning function contains two columns. --echo # 1.2 The partitioning function contains two columns.
let $unique= ; let $unique= ;
--source suite/parts/inc/partition_methods2.inc --source suite/parts/inc/partition_methods2.inc
...@@ -72,28 +49,6 @@ if ($more_pk_ui_tests) ...@@ -72,28 +49,6 @@ if ($more_pk_ui_tests)
--echo # 2.2 UNIQUE INDEX consisting of one column --echo # 2.2 UNIQUE INDEX consisting of one column
let $unique= , UNIQUE INDEX uidx1 (f_int1); let $unique= , UNIQUE INDEX uidx1 (f_int1);
--source suite/parts/inc/partition_methods1.inc --source suite/parts/inc/partition_methods1.inc
--echo # 2.2.1 with DATA DIECTORY/INDEX DIRECTORY
#
--disable_query_log
# DATA DIRECTORY
# Make directory for partition data
--exec mkdir $MYSQLTEST_VARDIR/master-data/test/data || true
eval SET @data_dir = 'DATA DIRECTORY =
''''$MYSQLTEST_VARDIR/master-data/test/data''''';
let $data_directory = `select @data_dir`;
#INDEX DIRECTORY
# Make directory for partition index
--exec mkdir $MYSQLTEST_VARDIR/master-data/test/index || true
eval SET @indx_dir = 'INDEX DIRECTORY =
''''$MYSQLTEST_VARDIR/master-data/test/index''''';
let $index_directory = `select @indx_dir`;
let $with_directories= TRUE;
--source suite/parts/inc/partition_methods1.inc
let $with_directories= FALSE;
--enable_query_log
# #
if ($do_pk_tests) if ($do_pk_tests)
{ {
......
################################################################################
# inc/partition_basic_symlink.inc #
# #
# Purpose: #
# Basic tests around create partitioned table with/without PRIMARY KEY and #
# /or UNIQUE INDEX #
# Also includes test for DATA/INDEX DIR which requires symlinked files #
# #
#------------------------------------------------------------------------------#
# Original Author: mleich #
# Original Date: 2006-03-05 #
# Change Author: mattiasj #
# Change Date: 2008-02-06 #
# Change: copied it from partition_basic.inc and kept DATA/INDEX DIR #
################################################################################
--enable_abort_on_error
--echo
--echo #========================================================================
--echo # Check partitioning methods on just created tables
--echo # The tables should be defined without/with PRIMARY KEY and
--echo # UNIQUE INDEXes.
--echo # Every test round has to check
--echo # PARTITION BY HASH/KEY/LIST/RANGE
--echo # PARTITION BY RANGE/LIST ... SUBPARTITION BY HASH/KEY ...
--echo #========================================================================
--echo #------------------------------------------------------------------------
--echo # 1 Tables without PRIMARY KEY or UNIQUE INDEXes
--echo #------------------------------------------------------------------------
--echo # 1.1 The partitioning function contains one column.
let $unique= ;
--source suite/parts/inc/partition_methods1.inc
#
--echo # 1.1.1 with DATA DIECTORY/INDEX DIRECTORY
#
--disable_query_log
# DATA DIRECTORY
# Make directory for partition data
--exec mkdir $MYSQLTEST_VARDIR/master-data/test/data || true
eval SET @data_dir = 'DATA DIRECTORY =
''''$MYSQLTEST_VARDIR/master-data/test/data''''';
let $data_directory = `select @data_dir`;
#INDEX DIRECTORY
# Make directory for partition index
--exec mkdir $MYSQLTEST_VARDIR/master-data/test/index || true
eval SET @indx_dir = 'INDEX DIRECTORY =
''''$MYSQLTEST_VARDIR/master-data/test/index''''';
let $index_directory = `select @indx_dir`;
let $with_directories= 1;
--source suite/parts/inc/partition_methods1.inc
--source suite/parts/inc/partition_directory.inc
let $with_directories= 0;
--enable_query_log
#
--echo # 1.2 The partitioning function contains two columns.
let $unique= ;
--source suite/parts/inc/partition_methods2.inc
#
--echo #------------------------------------------------------------------------
--echo # 2 Tables with PRIMARY KEY and/or UNIQUE INDEXes
--echo # The partitioning function contains one column.
--echo #------------------------------------------------------------------------
if ($more_pk_ui_tests)
{
if ($do_pk_tests)
{
--echo # 2.1 PRIMARY KEY consisting of one column
let $unique= , PRIMARY KEY(f_int1);
--source suite/parts/inc/partition_methods1.inc
}
--echo # 2.2 UNIQUE INDEX consisting of one column
let $unique= , UNIQUE INDEX uidx1 (f_int1);
--source suite/parts/inc/partition_methods1.inc
--echo # 2.2.1 with DATA DIECTORY/INDEX DIRECTORY
#
--disable_query_log
# DATA DIRECTORY
# Make directory for partition data
--exec mkdir $MYSQLTEST_VARDIR/master-data/test/data || true
eval SET @data_dir = 'DATA DIRECTORY =
''''$MYSQLTEST_VARDIR/master-data/test/data''''';
let $data_directory = `select @data_dir`;
#INDEX DIRECTORY
# Make directory for partition index
--exec mkdir $MYSQLTEST_VARDIR/master-data/test/index || true
eval SET @indx_dir = 'INDEX DIRECTORY =
''''$MYSQLTEST_VARDIR/master-data/test/index''''';
let $index_directory = `select @indx_dir`;
let $with_directories= TRUE;
--source suite/parts/inc/partition_methods1.inc
let $with_directories= FALSE;
--enable_query_log
#
if ($do_pk_tests)
{
--echo # 2.3 PRIMARY KEY consisting of two columns
let $unique= , PRIMARY KEY(f_int1,f_int2);
--source suite/parts/inc/partition_methods1.inc
let $unique= , PRIMARY KEY(f_int2,f_int1);
--source suite/parts/inc/partition_methods1.inc
}
#
--echo # 2.4 UNIQUE INDEX consisting of two columns
let $unique= , UNIQUE INDEX uidx1 (f_int1,f_int2);
--source suite/parts/inc/partition_methods1.inc
let $unique= , UNIQUE INDEX uidx1 (f_int2,f_int1);
--source suite/parts/inc/partition_methods1.inc
#
}
--echo # 2.5 PRIMARY KEY + UNIQUE INDEX consisting of two columns
if ($do_pk_tests)
{
let $unique= , UNIQUE INDEX uidx1 (f_int1,f_int2), PRIMARY KEY(f_int2,f_int1);
--source suite/parts/inc/partition_methods1.inc
let $unique= , UNIQUE INDEX uidx1 (f_int2,f_int1), PRIMARY KEY(f_int1,f_int2);
--source suite/parts/inc/partition_methods1.inc
}
let $unique= , UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1);
--source suite/parts/inc/partition_methods1.inc
--echo #------------------------------------------------------------------------
--echo # 3 Tables with PRIMARY KEY and/or UNIQUE INDEXes
--echo # The partitioning function contains two columns.
--echo #------------------------------------------------------------------------
#
if ($more_pk_ui_tests)
{
if ($do_pk_tests)
{
--echo # 3.1 PRIMARY KEY consisting of two columns
let $unique= , PRIMARY KEY(f_int1,f_int2);
--source suite/parts/inc/partition_methods2.inc
let $unique= , PRIMARY KEY(f_int2,f_int1);
--source suite/parts/inc/partition_methods2.inc
}
#
--echo # 3.2 UNIQUE INDEX consisting of two columns
let $unique= , UNIQUE INDEX uidx1 (f_int1,f_int2);
--source suite/parts/inc/partition_methods2.inc
let $unique= , UNIQUE INDEX uidx1 (f_int2,f_int1);
--source suite/parts/inc/partition_methods2.inc
}
#
--echo # 3.3 PRIMARY KEY and UNIQUE INDEX consisting of two columns
if ($do_pk_tests)
{
let $unique= , UNIQUE INDEX uidx1 (f_int1,f_int2), PRIMARY KEY(f_int2,f_int1);
--source suite/parts/inc/partition_methods2.inc
let $unique= , UNIQUE INDEX uidx1 (f_int2,f_int1), PRIMARY KEY(f_int1,f_int2);
--source suite/parts/inc/partition_methods2.inc
}
let $unique= , UNIQUE INDEX uidx1 (f_int1,f_int2), UNIQUE INDEX uidx2 (f_int2,f_int1);
--source suite/parts/inc/partition_methods2.inc
--disable_query_log
# DATA DIRECTORY
eval SET @data_dir = 'DATA DIRECTORY =
''/tmp''';
let $data_directory = `select @data_dir`;
#INDEX DIRECTORY
eval SET @indx_dir = 'INDEX DIRECTORY =
''/tmp''';
let $index_directory = `select @indx_dir`;
--enable_query_log
eval create table t1 (a bigint unsigned not null, primary key(a)) engine=$engine eval create table t1 (a bigint unsigned not null, primary key(a)) engine=$engine
partition by key (a) ( partition by key (a) (
partition pa1 $data_directory $index_directory max_rows=20 min_rows=2, partition pa1 max_rows=20 min_rows=2,
partition pa2 $data_directory $index_directory max_rows=30 min_rows=3, partition pa2 max_rows=30 min_rows=3,
partition pa3 $data_directory $index_directory max_rows=30 min_rows=4, partition pa3 max_rows=30 min_rows=4,
partition pa4 $data_directory $index_directory max_rows=40 min_rows=2); partition pa4 max_rows=40 min_rows=2);
show create table t1; show create table t1;
insert into t1 values (18446744073709551615), (0xFFFFFFFFFFFFFFFE), (18446744073709551613), (18446744073709551612), (1), (2), (65535); insert into t1 values (18446744073709551615), (0xFFFFFFFFFFFFFFFE), (18446744073709551613), (18446744073709551612), (1), (2), (65535);
select * from t1; select * from t1;
......
--echo ---- Partitioning and binary data type --echo ---- Partitioning and binary data type
--disable_query_log
# DATA DIRECTORY
eval SET @data_dir = 'DATA DIRECTORY =
''/tmp''';
let $data_directory = `select @data_dir`;
#INDEX DIRECTORY
eval SET @indx_dir = 'INDEX DIRECTORY =
''/tmp''';
let $index_directory = `select @indx_dir`;
--enable_query_log
eval create table t1 (a binary(255) not null, primary key(a)) engine=$engine eval create table t1 (a binary(255) not null, primary key(a)) engine=$engine
partition by key (a) ( partition by key (a) (
partition pa1 $data_directory $index_directory max_rows=20 min_rows=2, partition pa1 max_rows=20 min_rows=2,
partition pa2 $data_directory $index_directory max_rows=30 min_rows=3, partition pa2 max_rows=30 min_rows=3,
partition pa3 $data_directory $index_directory max_rows=30 min_rows=4, partition pa3 max_rows=30 min_rows=4,
partition pa4 $data_directory $index_directory max_rows=40 min_rows=2); partition pa4 max_rows=40 min_rows=2);
show create table t1; show create table t1;
insert into t1 values (repeat('a',255)), ('b'), (repeat('a',128)), (repeat('b',64)); insert into t1 values (repeat('a',255)), ('b'), (repeat('a',128)), (repeat('b',64));
select hex(a) from t1; select hex(a) from t1;
......
--disable_query_log
# DATA DIRECTORY
eval SET @data_dir = 'DATA DIRECTORY =
''/tmp''';
let $data_directory = `select @data_dir`;
#INDEX DIRECTORY
eval SET @indx_dir = 'INDEX DIRECTORY =
''/tmp''';
let $index_directory = `select @indx_dir`;
--enable_query_log
--disable_warnings --disable_warnings
drop table if exists t1; drop table if exists t1;
--enable_warnings --enable_warnings
...@@ -23,8 +11,8 @@ drop table t1; ...@@ -23,8 +11,8 @@ drop table t1;
eval create table t1 (a bit(0), primary key (a)) engine=$engine eval create table t1 (a bit(0), primary key (a)) engine=$engine
partition by key (a) ( partition by key (a) (
partition pa1 $data_directory $index_directory, partition pa1,
partition pa2 $data_directory $index_directory); partition pa2);
show create table t1; show create table t1;
drop table t1; drop table t1;
...@@ -37,15 +25,16 @@ insert into t1 values ...@@ -37,15 +25,16 @@ insert into t1 values
(b'0000000000000000000000000000000000000000000000000000000000000001'), (b'0000000000000000000000000000000000000000000000000000000000000001'),
(b'1010101010101010101010101010101010101010101010101010101010101010'), (b'1010101010101010101010101010101010101010101010101010101010101010'),
(b'0101010101010101010101010101010101010101010101010101010101010101'); (b'0101010101010101010101010101010101010101010101010101010101010101');
--sorted_result
select hex(a) from t1; select hex(a) from t1;
drop table t1; drop table t1;
eval create table t1 (a bit(64), primary key (a)) engine=$engine eval create table t1 (a bit(64), primary key (a)) engine=$engine
partition by key (a) ( partition by key (a) (
partition pa1 $data_directory $index_directory max_rows=20 min_rows=2, partition pa1 max_rows=20 min_rows=2,
partition pa2 $data_directory $index_directory max_rows=30 min_rows=3, partition pa2 max_rows=30 min_rows=3,
partition pa3 $data_directory $index_directory max_rows=30 min_rows=4, partition pa3 max_rows=30 min_rows=4,
partition pa4 $data_directory $index_directory max_rows=40 min_rows=2); partition pa4 max_rows=40 min_rows=2);
show create table t1; show create table t1;
insert into t1 values insert into t1 values
(b'1111111111111111111111111111111111111111111111111111111111111111'), (b'1111111111111111111111111111111111111111111111111111111111111111'),
...@@ -55,6 +44,7 @@ insert into t1 values ...@@ -55,6 +44,7 @@ insert into t1 values
(b'0101010101010101010101010101010101010101010101010101010101010101'); (b'0101010101010101010101010101010101010101010101010101010101010101');
select hex(a) from t1 where a=b'0101010101010101010101010101010101010101010101010101010101010101'; select hex(a) from t1 where a=b'0101010101010101010101010101010101010101010101010101010101010101';
delete from t1 where a=b'0101010101010101010101010101010101010101010101010101010101010101'; delete from t1 where a=b'0101010101010101010101010101010101010101010101010101010101010101';
--sorted_result
select hex(a) from t1; select hex(a) from t1;
drop table t1; drop table t1;
...@@ -62,12 +52,15 @@ eval create table t2 (a bit, primary key (a)) engine=$engine ...@@ -62,12 +52,15 @@ eval create table t2 (a bit, primary key (a)) engine=$engine
partition by key (a) partitions 4; partition by key (a) partitions 4;
show create table t2; show create table t2;
insert into t2 values (b'0'), (b'1'); insert into t2 values (b'0'), (b'1');
--sorted_result
select hex(a) from t2; select hex(a) from t2;
alter table t2 drop primary key; alter table t2 drop primary key;
show create table t2; show create table t2;
--sorted_result
select hex(a) from t2; select hex(a) from t2;
alter table t2 add primary key (a); alter table t2 add primary key (a);
show create table t2; show create table t2;
--sorted_result
select hex(a) from t2; select hex(a) from t2;
drop table t2; drop table t2;
...@@ -90,6 +83,7 @@ dec $count; ...@@ -90,6 +83,7 @@ dec $count;
select hex(a) from t3 where a=b'01010101'; select hex(a) from t3 where a=b'01010101';
delete from t3 where a=b'01010101'; delete from t3 where a=b'01010101';
select count(*) from t3; select count(*) from t3;
--sorted_result
select hex(a) from t3; select hex(a) from t3;
drop table t3; drop table t3;
...@@ -111,5 +105,6 @@ dec $count; ...@@ -111,5 +105,6 @@ dec $count;
select hex(a) from t4 where a=b'00000001'; select hex(a) from t4 where a=b'00000001';
delete from t4 where a=b'00000001'; delete from t4 where a=b'00000001';
select count(*) from t4; select count(*) from t4;
--sorted_result
select hex(a) from t4; select hex(a) from t4;
drop table t4; drop table t4;
--echo ---- Partitioning and blob data type --echo ---- Partitioning and blob data type
--disable_query_log
# DATA DIRECTORY
eval SET @data_dir = 'DATA DIRECTORY =
''/tmp''';
let $data_directory = `select @data_dir`;
#INDEX DIRECTORY
eval SET @indx_dir = 'INDEX DIRECTORY =
''/tmp''';
let $index_directory = `select @indx_dir`;
--enable_query_log
--error ER_BLOB_FIELD_IN_PART_FUNC_ERROR --error ER_BLOB_FIELD_IN_PART_FUNC_ERROR
eval create table t1 (a blob not null, primary key(a(767))) engine=$engine eval create table t1 (a blob not null, primary key(a(767))) engine=$engine
partition by key (a) ( partition by key (a) (
partition pa1 $data_directory $index_directory max_rows=20 min_rows=2, partition pa1 max_rows=20 min_rows=2,
partition pa2 $data_directory $index_directory max_rows=30 min_rows=3, partition pa2 max_rows=30 min_rows=3,
partition pa3 $data_directory $index_directory max_rows=30 min_rows=4, partition pa3 max_rows=30 min_rows=4,
partition pa4 $data_directory $index_directory max_rows=40 min_rows=2); partition pa4 max_rows=40 min_rows=2);
#show create table t1; #show create table t1;
#insert into t1 values (repeat('a',1000)), ('b'), (repeat('a',500)), (repeat('b',64)); #insert into t1 values (repeat('a',1000)), ('b'), (repeat('a',500)), (repeat('b',64));
......
--echo ---- Partitioning and char data type --echo ---- Partitioning and char data type
--disable_query_log
# DATA DIRECTORY
eval SET @data_dir = 'DATA DIRECTORY =
''/tmp''';
let $data_directory = `select @data_dir`;
#INDEX DIRECTORY
eval SET @indx_dir = 'INDEX DIRECTORY =
''/tmp''';
let $index_directory = `select @indx_dir`;
--enable_query_log
eval create table t1 (a char(255) not null, primary key(a)) engine=$engine eval create table t1 (a char(255) not null, primary key(a)) engine=$engine
partition by key (a) ( partition by key (a) (
partition pa1 $data_directory $index_directory max_rows=20 min_rows=2, partition pa1 max_rows=20 min_rows=2,
partition pa2 $data_directory $index_directory max_rows=30 min_rows=3, partition pa2 max_rows=30 min_rows=3,
partition pa3 $data_directory $index_directory max_rows=30 min_rows=4, partition pa3 max_rows=30 min_rows=4,
partition pa4 $data_directory $index_directory max_rows=40 min_rows=2); partition pa4 max_rows=40 min_rows=2);
show create table t1; show create table t1;
insert into t1 values (repeat('a',255)), ('b'), (repeat('a',128)), (repeat('b',64)); insert into t1 values (repeat('a',255)), ('b'), (repeat('a',128)), (repeat('b',64));
select * from t1; select * from t1;
......
--disable_query_log
# DATA DIRECTORY
eval SET @data_dir = 'DATA DIRECTORY =
''/tmp''';
let $data_directory = `select @data_dir`;
#INDEX DIRECTORY
eval SET @indx_dir = 'INDEX DIRECTORY =
''/tmp''';
let $index_directory = `select @indx_dir`;
--enable_query_log
eval create table t1 (a date not null, primary key(a)) engine=$engine eval create table t1 (a date not null, primary key(a)) engine=$engine
partition by key (a) ( partition by key (a) (
partition pa1 $data_directory $index_directory max_rows=20 min_rows=2, partition pa1 max_rows=20 min_rows=2,
partition pa2 $data_directory $index_directory max_rows=30 min_rows=3, partition pa2 max_rows=30 min_rows=3,
partition pa3 $data_directory $index_directory max_rows=30 min_rows=4, partition pa3 max_rows=30 min_rows=4,
partition pa4 $data_directory $index_directory max_rows=40 min_rows=2); partition pa4 max_rows=40 min_rows=2);
show create table t1; show create table t1;
insert into t1 values ('1975-01-01'), ('2020-12-31'), ('1980-10-14'), ('2000-06-15'); insert into t1 values ('1975-01-01'), ('2020-12-31'), ('1980-10-14'), ('2000-06-15');
select * from t1; select * from t1;
......
--disable_query_log
# DATA DIRECTORY
eval SET @data_dir = 'DATA DIRECTORY =
''/tmp''';
let $data_directory = `select @data_dir`;
#INDEX DIRECTORY
eval SET @indx_dir = 'INDEX DIRECTORY =
''/tmp''';
let $index_directory = `select @indx_dir`;
--enable_query_log
eval create table t1 (a datetime not null, primary key(a)) engine=$engine eval create table t1 (a datetime not null, primary key(a)) engine=$engine
partition by key (a) ( partition by key (a) (
partition pa1 $data_directory $index_directory max_rows=20 min_rows=2, partition pa1 max_rows=20 min_rows=2,
partition pa2 $data_directory $index_directory max_rows=30 min_rows=3, partition pa2 max_rows=30 min_rows=3,
partition pa3 $data_directory $index_directory max_rows=30 min_rows=4, partition pa3 max_rows=30 min_rows=4,
partition pa4 $data_directory $index_directory max_rows=40 min_rows=2); partition pa4 max_rows=40 min_rows=2);
show create table t1; show create table t1;
insert into t1 values ('1975-01-01 21:21:21'), ('2020-12-31 12:10:30'), ('1980-10-14 03:03'), ('2000-06-15 23:59'); insert into t1 values ('1975-01-01 21:21:21'), ('2020-12-31 12:10:30'), ('1980-10-14 03:03'), ('2000-06-15 23:59');
select * from t1; select * from t1;
......
--disable_query_log
# DATA DIRECTORY
eval SET @data_dir = 'DATA DIRECTORY =
''/tmp''';
let $data_directory = `select @data_dir`;
#INDEX DIRECTORY
eval SET @indx_dir = 'INDEX DIRECTORY =
''/tmp''';
let $index_directory = `select @indx_dir`;
--enable_query_log
eval create table t1 (a decimal(10,4) not null, primary key(a)) engine=$engine eval create table t1 (a decimal(10,4) not null, primary key(a)) engine=$engine
partition by key (a) ( partition by key (a) (
partition pa1 $data_directory $index_directory max_rows=20 min_rows=2, partition pa1 max_rows=20 min_rows=2,
partition pa2 $data_directory $index_directory max_rows=30 min_rows=3, partition pa2 max_rows=30 min_rows=3,
partition pa3 $data_directory $index_directory max_rows=30 min_rows=4, partition pa3 max_rows=30 min_rows=4,
partition pa4 $data_directory $index_directory max_rows=40 min_rows=2); partition pa4 max_rows=40 min_rows=2);
show create table t1; show create table t1;
insert into t1 values (999999.9999), (-999999.9999), (123456.7899), (-123456.7899), (-1.5), (1), (0), (-1), (1.5), (1234.567), (-1234.567); insert into t1 values (999999.9999), (-999999.9999), (123456.7899), (-123456.7899), (-1.5), (1), (0), (-1), (1.5), (1234.567), (-1234.567);
select * from t1; select * from t1;
......
--disable_query_log
# DATA DIRECTORY
eval SET @data_dir = 'DATA DIRECTORY =
''/tmp''';
let $data_directory = `select @data_dir`;
#INDEX DIRECTORY
eval SET @indx_dir = 'INDEX DIRECTORY =
''/tmp''';
let $index_directory = `select @indx_dir`;
--enable_query_log
eval create table t1 (a double not null, primary key(a)) engine=$engine eval create table t1 (a double not null, primary key(a)) engine=$engine
partition by key (a) ( partition by key (a) (
partition pa1 $data_directory $index_directory max_rows=20 min_rows=2, partition pa1 max_rows=20 min_rows=2,
partition pa2 $data_directory $index_directory max_rows=30 min_rows=3, partition pa2 max_rows=30 min_rows=3,
partition pa3 $data_directory $index_directory max_rows=30 min_rows=4, partition pa3 max_rows=30 min_rows=4,
partition pa4 $data_directory $index_directory max_rows=40 min_rows=2); partition pa4 max_rows=40 min_rows=2);
show create table t1; show create table t1;
insert into t1 values (-2.2250738585072014E+208), (-2.2250738585072014E-208), (-1.5), (-1), (0), (1.5), (1234.567), (2.2250738585072014E+208); insert into t1 values (-2.2250738585072014E+208), (-2.2250738585072014E-208), (-1.5), (-1), (0), (1.5), (1234.567), (2.2250738585072014E+208);
select * from t1; select * from t1;
......
--echo ---- Partitioning and enum data type --echo ---- Partitioning and enum data type
--disable_query_log
# DATA DIRECTORY
eval SET @data_dir = 'DATA DIRECTORY =
''/tmp''';
let $data_directory = `select @data_dir`;
#INDEX DIRECTORY
eval SET @indx_dir = 'INDEX DIRECTORY =
''/tmp''';
let $index_directory = `select @indx_dir`;
--enable_query_log
eval create table t1 (a enum('A','B','C','D','E','F','G','H','I','J','K','L') not null, primary key(a)) engine=$engine eval create table t1 (a enum('A','B','C','D','E','F','G','H','I','J','K','L') not null, primary key(a)) engine=$engine
partition by key (a) ( partition by key (a) (
partition pa1 $data_directory $index_directory max_rows=20 min_rows=2, partition pa1 max_rows=20 min_rows=2,
partition pa2 $data_directory $index_directory max_rows=30 min_rows=3, partition pa2 max_rows=30 min_rows=3,
partition pa3 $data_directory $index_directory max_rows=30 min_rows=4, partition pa3 max_rows=30 min_rows=4,
partition pa4 $data_directory $index_directory max_rows=40 min_rows=2); partition pa4 max_rows=40 min_rows=2);
show create table t1; show create table t1;
insert into t1 values ('A'),('D'),('L'),('G'); insert into t1 values ('A'),('D'),('L'),('G');
select * from t1; select * from t1;
......
--disable_query_log
# DATA DIRECTORY
eval SET @data_dir = 'DATA DIRECTORY =
''/tmp''';
let $data_directory = `select @data_dir`;
#INDEX DIRECTORY
eval SET @indx_dir = 'INDEX DIRECTORY =
''/tmp''';
let $index_directory = `select @indx_dir`;
--enable_query_log
eval create table t1 (a float not null, primary key(a)) engine=$engine eval create table t1 (a float not null, primary key(a)) engine=$engine
partition by key (a) ( partition by key (a) (
partition pa1 $data_directory $index_directory max_rows=20 min_rows=2, partition pa1 max_rows=20 min_rows=2,
partition pa2 $data_directory $index_directory max_rows=30 min_rows=3, partition pa2 max_rows=30 min_rows=3,
partition pa3 $data_directory $index_directory max_rows=30 min_rows=4, partition pa3 max_rows=30 min_rows=4,
partition pa4 $data_directory $index_directory max_rows=40 min_rows=2); partition pa4 max_rows=40 min_rows=2);
show create table t1; show create table t1;
insert into t1 values (-3.402823466E+38), (3.402823466E+38), (-1.5), (-1), (0), (1), (1.5); insert into t1 values (-3.402823466E+38), (3.402823466E+38), (-1.5), (-1), (0), (1), (1.5);
select * from t1; select * from t1;
......
--disable_query_log
# DATA DIRECTORY
eval SET @data_dir = 'DATA DIRECTORY =
''/tmp''';
let $data_directory = `select @data_dir`;
#INDEX DIRECTORY
eval SET @indx_dir = 'INDEX DIRECTORY =
''/tmp''';
let $index_directory = `select @indx_dir`;
--enable_query_log
eval create table t1 (a int unsigned not null, primary key(a)) engine=$engine eval create table t1 (a int unsigned not null, primary key(a)) engine=$engine
partition by key (a) ( partition by key (a) (
partition pa1 $data_directory $index_directory max_rows=20 min_rows=2, partition pa1 max_rows=20 min_rows=2,
partition pa2 $data_directory $index_directory max_rows=30 min_rows=3, partition pa2 max_rows=30 min_rows=3,
partition pa3 $data_directory $index_directory max_rows=30 min_rows=4, partition pa3 max_rows=30 min_rows=4,
partition pa4 $data_directory $index_directory max_rows=40 min_rows=2); partition pa4 max_rows=40 min_rows=2);
show create table t1; show create table t1;
insert into t1 values (4294967295), (4294967294), (4294967293), (4294967292), (1), (2), (65535); insert into t1 values (4294967295), (4294967294), (4294967293), (4294967292), (1), (2), (65535);
select * from t1; select * from t1;
......
--disable_query_log
# DATA DIRECTORY
eval SET @data_dir = 'DATA DIRECTORY =
''/tmp''';
let $data_directory = `select @data_dir`;
#INDEX DIRECTORY
eval SET @indx_dir = 'INDEX DIRECTORY =
''/tmp''';
let $index_directory = `select @indx_dir`;
--enable_query_log
eval create table t1 (a date not null, b varchar(50) not null, c varchar(50) not null, d enum('m', 'w') not null, e int not null, f decimal (18,2) not null, g bigint not null, h tinyint not null, a1 date not null, b1 varchar(50) not null, c1 varchar(50) not null, d1 enum('m', 'w') not null, e1 int not null, f1 decimal (18,2) not null, g1 bigint not null, h1 tinyint not null, i char(255), primary key(a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1)) engine=$engine eval create table t1 (a date not null, b varchar(50) not null, c varchar(50) not null, d enum('m', 'w') not null, e int not null, f decimal (18,2) not null, g bigint not null, h tinyint not null, a1 date not null, b1 varchar(50) not null, c1 varchar(50) not null, d1 enum('m', 'w') not null, e1 int not null, f1 decimal (18,2) not null, g1 bigint not null, h1 tinyint not null, i char(255), primary key(a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1)) engine=$engine
partition by key(a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1) ( partition by key(a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1) (
partition pa1 $data_directory $index_directory max_rows=20 min_rows=2, partition pa1 max_rows=20 min_rows=2,
partition pa2 $data_directory $index_directory max_rows=30 min_rows=3, partition pa2 max_rows=30 min_rows=3,
partition pa3 $data_directory $index_directory max_rows=30 min_rows=4, partition pa3 max_rows=30 min_rows=4,
partition pa4 $data_directory $index_directory max_rows=40 min_rows=2); partition pa4 max_rows=40 min_rows=2);
show create table t1; show create table t1;
insert into t1 values insert into t1 values
('1975-01-01', 'abcde', 'abcde','m', 1234, 123.45, 32412341234, 113,'1975-01-01', 'abcde', 'abcde','m', 1234, 123.45, 32412341234, 113, 'tbhth nrzh ztfghgfh fzh ftzhj fztjh'), ('1975-01-01', 'abcde', 'abcde','m', 1234, 123.45, 32412341234, 113,'1975-01-01', 'abcde', 'abcde','m', 1234, 123.45, 32412341234, 113, 'tbhth nrzh ztfghgfh fzh ftzhj fztjh'),
......
--disable_query_log
# DATA DIRECTORY
eval SET @data_dir = 'DATA DIRECTORY =
''/tmp''';
let $data_directory = `select @data_dir`;
#INDEX DIRECTORY
eval SET @indx_dir = 'INDEX DIRECTORY =
''/tmp''';
let $index_directory = `select @indx_dir`;
--enable_query_log
--error ER_TOO_MANY_KEY_PARTS --error ER_TOO_MANY_KEY_PARTS
eval create table t1 (a date not null, b varchar(50) not null, c varchar(50) not null, d enum('m', 'w') not null, e int not null, f decimal (18,2) not null, g bigint not null, h tinyint not null, a1 date not null, b1 varchar(50) not null, c1 varchar(50) not null, d1 enum('m', 'w') not null, e1 int not null, f1 decimal (18,2) not null, g1 bigint not null, h1 tinyint not null, a2 date not null, b2 varchar(50) not null, c2 varchar(50) not null, d2 enum('m', 'w') not null, e2 int not null, f2 decimal (18,2) not null, g2 bigint not null, h2 tinyint not null, a3 date not null, b3 varchar(50) not null, c3 varchar(50) not null, d3 enum('m', 'w') not null, e3 int not null, f3 decimal (18,2) not null, g3 bigint not null, h3 tinyint not null, i char(255), primary key(a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1,a2,b2,c2,d2,e2,f2,g2,h2,a3,b3,c3,d3,e3,f3,g3,h3)) engine=$engine eval create table t1 (a date not null, b varchar(50) not null, c varchar(50) not null, d enum('m', 'w') not null, e int not null, f decimal (18,2) not null, g bigint not null, h tinyint not null, a1 date not null, b1 varchar(50) not null, c1 varchar(50) not null, d1 enum('m', 'w') not null, e1 int not null, f1 decimal (18,2) not null, g1 bigint not null, h1 tinyint not null, a2 date not null, b2 varchar(50) not null, c2 varchar(50) not null, d2 enum('m', 'w') not null, e2 int not null, f2 decimal (18,2) not null, g2 bigint not null, h2 tinyint not null, a3 date not null, b3 varchar(50) not null, c3 varchar(50) not null, d3 enum('m', 'w') not null, e3 int not null, f3 decimal (18,2) not null, g3 bigint not null, h3 tinyint not null, i char(255), primary key(a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1,a2,b2,c2,d2,e2,f2,g2,h2,a3,b3,c3,d3,e3,f3,g3,h3)) engine=$engine
partition by key(a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1,a2,b2,c2,d2,e2,f2,g2,h2,a3,b3,c3,d3,e3,f3,g3,h3) ( partition by key(a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1,a2,b2,c2,d2,e2,f2,g2,h2,a3,b3,c3,d3,e3,f3,g3,h3) (
partition pa1 $data_directory $index_directory max_rows=20 min_rows=2, partition pa1 max_rows=20 min_rows=2,
partition pa2 $data_directory $index_directory max_rows=30 min_rows=3, partition pa2 max_rows=30 min_rows=3,
partition pa3 $data_directory $index_directory max_rows=30 min_rows=4, partition pa3 max_rows=30 min_rows=4,
partition pa4 $data_directory $index_directory max_rows=40 min_rows=2); partition pa4 max_rows=40 min_rows=2);
eval create table t1 (a date not null, b varchar(50) not null, c varchar(50) not null, d enum('m', 'w') not null, e int not null, f decimal (18,2) not null, g bigint not null, h tinyint not null, a1 date not null, b1 varchar(50) not null, c1 varchar(50) not null, d1 enum('m', 'w') not null, e1 int not null, f1 decimal (18,2) not null, g1 bigint not null, h1 tinyint not null, a2 date not null, b2 varchar(50) not null, c2 varchar(50) not null, d2 enum('m', 'w') not null, e2 int not null, f2 decimal (18,2) not null, g2 bigint not null, h2 tinyint not null, a3 date not null, b3 varchar(50) not null, c3 varchar(50) not null, d3 enum('m', 'w') not null, e3 int not null, f3 decimal (18,2) not null, g3 bigint not null, h3 tinyint not null, i char(255), primary key(a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1)) engine=$engine eval create table t1 (a date not null, b varchar(50) not null, c varchar(50) not null, d enum('m', 'w') not null, e int not null, f decimal (18,2) not null, g bigint not null, h tinyint not null, a1 date not null, b1 varchar(50) not null, c1 varchar(50) not null, d1 enum('m', 'w') not null, e1 int not null, f1 decimal (18,2) not null, g1 bigint not null, h1 tinyint not null, a2 date not null, b2 varchar(50) not null, c2 varchar(50) not null, d2 enum('m', 'w') not null, e2 int not null, f2 decimal (18,2) not null, g2 bigint not null, h2 tinyint not null, a3 date not null, b3 varchar(50) not null, c3 varchar(50) not null, d3 enum('m', 'w') not null, e3 int not null, f3 decimal (18,2) not null, g3 bigint not null, h3 tinyint not null, i char(255), primary key(a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1)) engine=$engine
partition by key(a,b,c,d,e,f,g,h) ( partition by key(a,b,c,d,e,f,g,h) (
partition pa1 $data_directory $index_directory max_rows=20 min_rows=2, partition pa1 max_rows=20 min_rows=2,
partition pa2 $data_directory $index_directory max_rows=30 min_rows=3, partition pa2 max_rows=30 min_rows=3,
partition pa3 $data_directory $index_directory max_rows=30 min_rows=4, partition pa3 max_rows=30 min_rows=4,
partition pa4 $data_directory $index_directory max_rows=40 min_rows=2); partition pa4 max_rows=40 min_rows=2);
--disable_abort_on error --disable_abort_on error
show create table t1; show create table t1;
......
--disable_query_log
# DATA DIRECTORY
eval SET @data_dir = 'DATA DIRECTORY =
''/tmp''';
let $data_directory = `select @data_dir`;
#INDEX DIRECTORY
eval SET @indx_dir = 'INDEX DIRECTORY =
''/tmp''';
let $index_directory = `select @indx_dir`;
--enable_query_log
eval create table t1 (a date not null, b varchar(50) not null, c varchar(50) not null, d enum('m', 'w'), primary key(a,b,c,d)) engine=$engine eval create table t1 (a date not null, b varchar(50) not null, c varchar(50) not null, d enum('m', 'w'), primary key(a,b,c,d)) engine=$engine
partition by key (a,b,c,d) ( partition by key (a,b,c,d) (
partition pa1 $data_directory $index_directory max_rows=20 min_rows=2, partition pa1 max_rows=20 min_rows=2,
partition pa2 $data_directory $index_directory max_rows=30 min_rows=3, partition pa2 max_rows=30 min_rows=3,
partition pa3 $data_directory $index_directory max_rows=30 min_rows=4, partition pa3 max_rows=30 min_rows=4,
partition pa4 $data_directory $index_directory max_rows=40 min_rows=2); partition pa4 max_rows=40 min_rows=2);
show create table t1; show create table t1;
insert into t1 values insert into t1 values
('1975-01-01', 'abcde', 'abcde','m'), ('1975-01-01', 'abcde', 'abcde','m'),
......
--disable_query_log
# DATA DIRECTORY
eval SET @data_dir = 'DATA DIRECTORY =
''/tmp''';
let $data_directory = `select @data_dir`;
#INDEX DIRECTORY
eval SET @indx_dir = 'INDEX DIRECTORY =
''/tmp''';
let $index_directory = `select @indx_dir`;
--enable_query_log
eval create table t1 (a date not null, b varchar(50) not null, c varchar(50) not null, d enum('m', 'w') not null, e int not null, f decimal (18,2) not null, g bigint not null, h tinyint not null, i char(255), primary key(a,b,c,d,e,f,g,h)) engine=$engine eval create table t1 (a date not null, b varchar(50) not null, c varchar(50) not null, d enum('m', 'w') not null, e int not null, f decimal (18,2) not null, g bigint not null, h tinyint not null, i char(255), primary key(a,b,c,d,e,f,g,h)) engine=$engine
partition by key(a,b,c,d,e,f,g,h) ( partition by key(a,b,c,d,e,f,g,h) (
partition pa1 $data_directory $index_directory max_rows=20 min_rows=2, partition pa1 max_rows=20 min_rows=2,
partition pa2 $data_directory $index_directory max_rows=30 min_rows=3, partition pa2 max_rows=30 min_rows=3,
partition pa3 $data_directory $index_directory max_rows=30 min_rows=4, partition pa3 max_rows=30 min_rows=4,
partition pa4 $data_directory $index_directory max_rows=40 min_rows=2); partition pa4 max_rows=40 min_rows=2);
show create table t1; show create table t1;
insert into t1 values insert into t1 values
('1975-01-01', 'abcde', 'abcde','m', 1234, 123.45, 32412341234, 113, 'tbhth nrzh ztfghgfh fzh ftzhj fztjh'), ('1975-01-01', 'abcde', 'abcde','m', 1234, 123.45, 32412341234, 113, 'tbhth nrzh ztfghgfh fzh ftzhj fztjh'),
......
--disable_query_log
# DATA DIRECTORY
eval SET @data_dir = 'DATA DIRECTORY =
''/tmp''';
let $data_directory = `select @data_dir`;
#INDEX DIRECTORY
eval SET @indx_dir = 'INDEX DIRECTORY =
''/tmp''';
let $index_directory = `select @indx_dir`;
--enable_query_log
eval create table t1 (a mediumint unsigned not null, primary key(a)) engine=$engine eval create table t1 (a mediumint unsigned not null, primary key(a)) engine=$engine
partition by key (a) ( partition by key (a) (
partition pa1 $data_directory $index_directory max_rows=20 min_rows=2, partition pa1 max_rows=20 min_rows=2,
partition pa2 $data_directory $index_directory max_rows=30 min_rows=3, partition pa2 max_rows=30 min_rows=3,
partition pa3 $data_directory $index_directory max_rows=30 min_rows=4, partition pa3 max_rows=30 min_rows=4,
partition pa4 $data_directory $index_directory max_rows=40 min_rows=2); partition pa4 max_rows=40 min_rows=2);
show create table t1; show create table t1;
insert into t1 values (16777215), (16777214), (16777213), (16777212), (1), (2), (65535); insert into t1 values (16777215), (16777214), (16777213), (16777212), (1), (2), (65535);
select * from t1; select * from t1;
......
--echo ---- Partitioning and set data type --echo ---- Partitioning and set data type
--disable_query_log
# DATA DIRECTORY
eval SET @data_dir = 'DATA DIRECTORY =
''/tmp''';
let $data_directory = `select @data_dir`;
#INDEX DIRECTORY
eval SET @indx_dir = 'INDEX DIRECTORY =
''/tmp''';
let $index_directory = `select @indx_dir`;
--enable_query_log
eval create table t1 (a set('A','B','C','D','E','F','G','H','I','J','K','L') not null, primary key(a)) engine=$engine eval create table t1 (a set('A','B','C','D','E','F','G','H','I','J','K','L') not null, primary key(a)) engine=$engine
partition by key (a) ( partition by key (a) (
partition pa1 $data_directory $index_directory max_rows=20 min_rows=2, partition pa1 max_rows=20 min_rows=2,
partition pa2 $data_directory $index_directory max_rows=30 min_rows=3, partition pa2 max_rows=30 min_rows=3,
partition pa3 $data_directory $index_directory max_rows=30 min_rows=4, partition pa3 max_rows=30 min_rows=4,
partition pa4 $data_directory $index_directory max_rows=40 min_rows=2); partition pa4 max_rows=40 min_rows=2);
show create table t1; show create table t1;
insert into t1 values ('A,B'),('C,D'),('E,L'),('G,H,K'); insert into t1 values ('A,B'),('C,D'),('E,L'),('G,H,K');
select * from t1 order by a; select * from t1 order by a;
......
--disable_query_log
# DATA DIRECTORY
eval SET @data_dir = 'DATA DIRECTORY =
''/tmp''';
let $data_directory = `select @data_dir`;
#INDEX DIRECTORY
eval SET @indx_dir = 'INDEX DIRECTORY =
''/tmp''';
let $index_directory = `select @indx_dir`;
--enable_query_log
eval create table t1 (a smallint unsigned not null, primary key(a)) engine=$engine eval create table t1 (a smallint unsigned not null, primary key(a)) engine=$engine
partition by key (a) ( partition by key (a) (
partition pa1 $data_directory $index_directory max_rows=20 min_rows=2, partition pa1 max_rows=20 min_rows=2,
partition pa2 $data_directory $index_directory max_rows=30 min_rows=3, partition pa2 max_rows=30 min_rows=3,
partition pa3 $data_directory $index_directory max_rows=30 min_rows=4, partition pa3 max_rows=30 min_rows=4,
partition pa4 $data_directory $index_directory max_rows=40 min_rows=2); partition pa4 max_rows=40 min_rows=2);
show create table t1; show create table t1;
insert into t1 values (65535), (65534), (65533), (65532), (1), (2), (256); insert into t1 values (65535), (65534), (65533), (65532), (1), (2), (256);
select * from t1; select * from t1;
......
--echo ---- Partitioning and text data type --echo ---- Partitioning and text data type
--disable_query_log
# DATA DIRECTORY
eval SET @data_dir = 'DATA DIRECTORY =
''/tmp''';
let $data_directory = `select @data_dir`;
#INDEX DIRECTORY
eval SET @indx_dir = 'INDEX DIRECTORY =
''/tmp''';
let $index_directory = `select @indx_dir`;
--enable_query_log
--error ER_BLOB_FIELD_IN_PART_FUNC_ERROR --error ER_BLOB_FIELD_IN_PART_FUNC_ERROR
eval create table t1 (a text not null, primary key(a(767))) engine=$engine eval create table t1 (a text not null, primary key(a(767))) engine=$engine
partition by key (a) ( partition by key (a) (
partition pa1 $data_directory $index_directory max_rows=20 min_rows=2, partition pa1 max_rows=20 min_rows=2,
partition pa2 $data_directory $index_directory max_rows=30 min_rows=3, partition pa2 max_rows=30 min_rows=3,
partition pa3 $data_directory $index_directory max_rows=30 min_rows=4, partition pa3 max_rows=30 min_rows=4,
partition pa4 $data_directory $index_directory max_rows=40 min_rows=2); partition pa4 max_rows=40 min_rows=2);
#show create table t1; #show create table t1;
#insert into t1 values (repeat('a',1000)), ('b'), (repeat('a',500)), (repeat('b',64)); #insert into t1 values (repeat('a',1000)), ('b'), (repeat('a',500)), (repeat('b',64));
......
--disable_query_log
# DATA DIRECTORY
eval SET @data_dir = 'DATA DIRECTORY =
''/tmp''';
let $data_directory = `select @data_dir`;
#INDEX DIRECTORY
eval SET @indx_dir = 'INDEX DIRECTORY =
''/tmp''';
let $index_directory = `select @indx_dir`;
--enable_query_log
eval create table t1 (a time not null, primary key(a)) engine=$engine eval create table t1 (a time not null, primary key(a)) engine=$engine
partition by key (a) ( partition by key (a) (
partition pa1 $data_directory $index_directory max_rows=20 min_rows=2, partition pa1 max_rows=20 min_rows=2,
partition pa2 $data_directory $index_directory max_rows=30 min_rows=3, partition pa2 max_rows=30 min_rows=3,
partition pa3 $data_directory $index_directory max_rows=30 min_rows=4, partition pa3 max_rows=30 min_rows=4,
partition pa4 $data_directory $index_directory max_rows=40 min_rows=2); partition pa4 max_rows=40 min_rows=2);
show create table t1; show create table t1;
insert into t1 values ('21:21:21'), ('12:10:30'), ('03:03:03'), ('23:59'); insert into t1 values ('21:21:21'), ('12:10:30'), ('03:03:03'), ('23:59');
select * from t1; select * from t1;
......
--disable_query_log
# DATA DIRECTORY
eval SET @data_dir = 'DATA DIRECTORY =
''/tmp''';
let $data_directory = `select @data_dir`;
#INDEX DIRECTORY
eval SET @indx_dir = 'INDEX DIRECTORY =
''/tmp''';
let $index_directory = `select @indx_dir`;
--enable_query_log
eval create table t1 (a timestamp not null, primary key(a)) engine=$engine eval create table t1 (a timestamp not null, primary key(a)) engine=$engine
partition by key (a) ( partition by key (a) (
partition pa1 $data_directory $index_directory max_rows=20 min_rows=2, partition pa1 max_rows=20 min_rows=2,
partition pa2 $data_directory $index_directory max_rows=30 min_rows=3, partition pa2 max_rows=30 min_rows=3,
partition pa3 $data_directory $index_directory max_rows=30 min_rows=4, partition pa3 max_rows=30 min_rows=4,
partition pa4 $data_directory $index_directory max_rows=40 min_rows=2); partition pa4 max_rows=40 min_rows=2);
show create table t1; show create table t1;
insert into t1 values ('1975-01-01 21:21:21'), ('2020-12-31 12:10:30'), ('1980-10-14 03:03'), ('2000-06-15 23:59'); insert into t1 values ('1975-01-01 21:21:21'), ('2020-12-31 12:10:30'), ('1980-10-14 03:03'), ('2000-06-15 23:59');
select * from t1; select * from t1;
......
--disable_query_log
# DATA DIRECTORY
eval SET @data_dir = 'DATA DIRECTORY =
''/tmp''';
let $data_directory = `select @data_dir`;
#INDEX DIRECTORY
eval SET @indx_dir = 'INDEX DIRECTORY =
''/tmp''';
let $index_directory = `select @indx_dir`;
--enable_query_log
eval create table t1 (a tinyint unsigned not null, primary key(a)) engine=$engine eval create table t1 (a tinyint unsigned not null, primary key(a)) engine=$engine
partition by key (a) ( partition by key (a) (
partition pa1 $data_directory $index_directory max_rows=20 min_rows=2, partition pa1 max_rows=20 min_rows=2,
partition pa2 $data_directory $index_directory max_rows=30 min_rows=3, partition pa2 max_rows=30 min_rows=3,
partition pa3 $data_directory $index_directory max_rows=30 min_rows=4, partition pa3 max_rows=30 min_rows=4,
partition pa4 $data_directory $index_directory max_rows=40 min_rows=2); partition pa4 max_rows=40 min_rows=2);
show create table t1; show create table t1;
insert into t1 values (255), (254), (253), (252), (1), (2), (128); insert into t1 values (255), (254), (253), (252), (1), (2), (128);
select * from t1; select * from t1;
......
--echo ---- Partitioning and varbinary data type --echo ---- Partitioning and varbinary data type
--disable_query_log
# DATA DIRECTORY
eval SET @data_dir = 'DATA DIRECTORY =
''/tmp''';
let $data_directory = `select @data_dir`;
#INDEX DIRECTORY
eval SET @indx_dir = 'INDEX DIRECTORY =
''/tmp''';
let $index_directory = `select @indx_dir`;
--enable_query_log
eval create table t1 (a varbinary(767) not null, primary key(a)) engine=$engine eval create table t1 (a varbinary(767) not null, primary key(a)) engine=$engine
partition by key (a) ( partition by key (a) (
partition pa1 $data_directory $index_directory max_rows=20 min_rows=2, partition pa1 max_rows=20 min_rows=2,
partition pa2 $data_directory $index_directory max_rows=30 min_rows=3, partition pa2 max_rows=30 min_rows=3,
partition pa3 $data_directory $index_directory max_rows=30 min_rows=4, partition pa3 max_rows=30 min_rows=4,
partition pa4 $data_directory $index_directory max_rows=40 min_rows=2); partition pa4 max_rows=40 min_rows=2);
show create table t1; show create table t1;
insert into t1 values (repeat('a',767)), ('b'), (repeat('a',500)), (repeat('b',64)); insert into t1 values (repeat('a',767)), ('b'), (repeat('a',500)), (repeat('b',64));
select * from t1; select * from t1;
......
--echo ---- Partitioning and varchar data type --echo ---- Partitioning and varchar data type
--disable_query_log
# DATA DIRECTORY
eval SET @data_dir = 'DATA DIRECTORY =
''/tmp''';
let $data_directory = `select @data_dir`;
#INDEX DIRECTORY
eval SET @indx_dir = 'INDEX DIRECTORY =
''/tmp''';
let $index_directory = `select @indx_dir`;
--enable_query_log
eval create table t1 (a varchar(767) not null, primary key(a)) engine=$engine eval create table t1 (a varchar(767) not null, primary key(a)) engine=$engine
partition by key (a) ( partition by key (a) (
partition pa1 $data_directory $index_directory max_rows=20 min_rows=2, partition pa1 max_rows=20 min_rows=2,
partition pa2 $data_directory $index_directory max_rows=30 min_rows=3, partition pa2 max_rows=30 min_rows=3,
partition pa3 $data_directory $index_directory max_rows=30 min_rows=4, partition pa3 max_rows=30 min_rows=4,
partition pa4 $data_directory $index_directory max_rows=40 min_rows=2); partition pa4 max_rows=40 min_rows=2);
show create table t1; show create table t1;
insert into t1 values (repeat('a',767)), ('b'), (repeat('a',500)), (repeat('b',64)); insert into t1 values (repeat('a',767)), ('b'), (repeat('a',500)), (repeat('b',64));
select * from t1; select * from t1;
......
--disable_query_log
# DATA DIRECTORY
eval SET @data_dir = 'DATA DIRECTORY =
''/tmp''';
let $data_directory = `select @data_dir`;
#INDEX DIRECTORY
eval SET @indx_dir = 'INDEX DIRECTORY =
''/tmp''';
let $index_directory = `select @indx_dir`;
--enable_query_log
eval create table t1 (a year not null, primary key(a)) engine=$engine eval create table t1 (a year not null, primary key(a)) engine=$engine
partition by key (a) ( partition by key (a) (
partition pa1 $data_directory $index_directory max_rows=20 min_rows=2, partition pa1 max_rows=20 min_rows=2,
partition pa2 $data_directory $index_directory max_rows=30 min_rows=3, partition pa2 max_rows=30 min_rows=3,
partition pa3 $data_directory $index_directory max_rows=30 min_rows=4, partition pa3 max_rows=30 min_rows=4,
partition pa4 $data_directory $index_directory max_rows=40 min_rows=2); partition pa4 max_rows=40 min_rows=2);
show create table t1; show create table t1;
insert into t1 values ('1975'), (2020), ('1980'), ('2000'); insert into t1 values ('1975'), (2020), ('1980'), ('2000');
select * from t1; select * from t1;
......
This diff is collapsed.
This diff is collapsed.
...@@ -12,18 +12,14 @@ t1 CREATE TABLE `t1` ( ...@@ -12,18 +12,14 @@ t1 CREATE TABLE `t1` (
drop table t1; drop table t1;
create table t1 (a bit(0), primary key (a)) engine='INNODB' create table t1 (a bit(0), primary key (a)) engine='INNODB'
partition by key (a) ( partition by key (a) (
partition pa1 DATA DIRECTORY = partition pa1,
'/tmp' INDEX DIRECTORY = partition pa2);
'/tmp',
partition pa2 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp');
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`a` bit(1) NOT NULL DEFAULT '\0', `a` bit(1) NOT NULL DEFAULT '\0',
PRIMARY KEY (`a`) PRIMARY KEY (`a`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB) */ ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 ENGINE = InnoDB, PARTITION pa2 ENGINE = InnoDB) */
drop table t1; drop table t1;
create table t1 (a bit(64), primary key (a)) engine='INNODB' create table t1 (a bit(64), primary key (a)) engine='INNODB'
partition by key (a) partitions 2; partition by key (a) partitions 2;
...@@ -49,24 +45,16 @@ FFFFFFFFFFFFFFFF ...@@ -49,24 +45,16 @@ FFFFFFFFFFFFFFFF
drop table t1; drop table t1;
create table t1 (a bit(64), primary key (a)) engine='INNODB' create table t1 (a bit(64), primary key (a)) engine='INNODB'
partition by key (a) ( partition by key (a) (
partition pa1 DATA DIRECTORY = partition pa1 max_rows=20 min_rows=2,
'/tmp' INDEX DIRECTORY = partition pa2 max_rows=30 min_rows=3,
'/tmp' max_rows=20 min_rows=2, partition pa3 max_rows=30 min_rows=4,
partition pa2 DATA DIRECTORY = partition pa4 max_rows=40 min_rows=2);
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=3,
partition pa3 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=4,
partition pa4 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=40 min_rows=2);
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`a` bit(64) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0', `a` bit(64) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0',
PRIMARY KEY (`a`) PRIMARY KEY (`a`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB) */ ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = InnoDB) */
insert into t1 values insert into t1 values
(b'1111111111111111111111111111111111111111111111111111111111111111'), (b'1111111111111111111111111111111111111111111111111111111111111111'),
(b'1000000000000000000000000000000000000000000000000000000000000000'), (b'1000000000000000000000000000000000000000000000000000000000000000'),
...@@ -105,8 +93,8 @@ t2 CREATE TABLE `t2` ( ...@@ -105,8 +93,8 @@ t2 CREATE TABLE `t2` (
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) PARTITIONS 4 */ ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) PARTITIONS 4 */
select hex(a) from t2; select hex(a) from t2;
hex(a) hex(a)
1
0 0
1
alter table t2 add primary key (a); alter table t2 add primary key (a);
show create table t2; show create table t2;
Table Create Table Table Create Table
...@@ -142,20 +130,6 @@ count(*) ...@@ -142,20 +130,6 @@ count(*)
select hex(a) from t3; select hex(a) from t3;
hex(a) hex(a)
1 1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
10 10
11 11
12 12
...@@ -172,6 +146,7 @@ F ...@@ -172,6 +146,7 @@ F
1D 1D
1E 1E
1F 1F
2
20 20
21 21
22 22
...@@ -188,6 +163,7 @@ F ...@@ -188,6 +163,7 @@ F
2D 2D
2E 2E
2F 2F
3
30 30
31 31
32 32
...@@ -204,6 +180,7 @@ F ...@@ -204,6 +180,7 @@ F
3D 3D
3E 3E
3F 3F
4
40 40
41 41
42 42
...@@ -220,6 +197,7 @@ F ...@@ -220,6 +197,7 @@ F
4D 4D
4E 4E
4F 4F
5
50 50
51 51
52 52
...@@ -235,6 +213,7 @@ F ...@@ -235,6 +213,7 @@ F
5D 5D
5E 5E
5F 5F
6
60 60
61 61
62 62
...@@ -251,6 +230,7 @@ F ...@@ -251,6 +230,7 @@ F
6D 6D
6E 6E
6F 6F
7
70 70
71 71
72 72
...@@ -267,6 +247,7 @@ F ...@@ -267,6 +247,7 @@ F
7D 7D
7E 7E
7F 7F
8
80 80
81 81
82 82
...@@ -283,6 +264,7 @@ F ...@@ -283,6 +264,7 @@ F
8D 8D
8E 8E
8F 8F
9
90 90
91 91
92 92
...@@ -299,6 +281,7 @@ F ...@@ -299,6 +281,7 @@ F
9D 9D
9E 9E
9F 9F
A
A0 A0
A1 A1
A2 A2
...@@ -315,6 +298,7 @@ AC ...@@ -315,6 +298,7 @@ AC
AD AD
AE AE
AF AF
B
B0 B0
B1 B1
B2 B2
...@@ -331,6 +315,7 @@ BC ...@@ -331,6 +315,7 @@ BC
BD BD
BE BE
BF BF
C
C0 C0
C1 C1
C2 C2
...@@ -347,6 +332,7 @@ CC ...@@ -347,6 +332,7 @@ CC
CD CD
CE CE
CF CF
D
D0 D0
D1 D1
D2 D2
...@@ -363,6 +349,7 @@ DC ...@@ -363,6 +349,7 @@ DC
DD DD
DE DE
DF DF
E
E0 E0
E1 E1
E2 E2
...@@ -379,6 +366,7 @@ EC ...@@ -379,6 +366,7 @@ EC
ED ED
EE EE
EF EF
F
F0 F0
F1 F1
F2 F2
...@@ -417,20 +405,6 @@ count(*) ...@@ -417,20 +405,6 @@ count(*)
31 31
select hex(a) from t4; select hex(a) from t4;
hex(a) hex(a)
2
3
4
5
6
7
8
9
A
B
C
D
E
F
10 10
11 11
12 12
...@@ -447,5 +421,19 @@ F ...@@ -447,5 +421,19 @@ F
1D 1D
1E 1E
1F 1F
2
20 20
3
4
5
6
7
8
9
A
B
C
D
E
F
drop table t4; drop table t4;
...@@ -12,18 +12,14 @@ t1 CREATE TABLE `t1` ( ...@@ -12,18 +12,14 @@ t1 CREATE TABLE `t1` (
drop table t1; drop table t1;
create table t1 (a bit(0), primary key (a)) engine='MyISAM' create table t1 (a bit(0), primary key (a)) engine='MyISAM'
partition by key (a) ( partition by key (a) (
partition pa1 DATA DIRECTORY = partition pa1,
'/tmp' INDEX DIRECTORY = partition pa2);
'/tmp',
partition pa2 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp');
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`a` bit(1) NOT NULL DEFAULT '\0', `a` bit(1) NOT NULL DEFAULT '\0',
PRIMARY KEY (`a`) PRIMARY KEY (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM) */ ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 ENGINE = MyISAM, PARTITION pa2 ENGINE = MyISAM) */
drop table t1; drop table t1;
create table t1 (a bit(64), primary key (a)) engine='MyISAM' create table t1 (a bit(64), primary key (a)) engine='MyISAM'
partition by key (a) partitions 2; partition by key (a) partitions 2;
...@@ -49,24 +45,16 @@ FFFFFFFFFFFFFFFF ...@@ -49,24 +45,16 @@ FFFFFFFFFFFFFFFF
drop table t1; drop table t1;
create table t1 (a bit(64), primary key (a)) engine='MyISAM' create table t1 (a bit(64), primary key (a)) engine='MyISAM'
partition by key (a) ( partition by key (a) (
partition pa1 DATA DIRECTORY = partition pa1 max_rows=20 min_rows=2,
'/tmp' INDEX DIRECTORY = partition pa2 max_rows=30 min_rows=3,
'/tmp' max_rows=20 min_rows=2, partition pa3 max_rows=30 min_rows=4,
partition pa2 DATA DIRECTORY = partition pa4 max_rows=40 min_rows=2);
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=3,
partition pa3 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=4,
partition pa4 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=40 min_rows=2);
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`a` bit(64) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0', `a` bit(64) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0',
PRIMARY KEY (`a`) PRIMARY KEY (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM) */ ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = MyISAM) */
insert into t1 values insert into t1 values
(b'1111111111111111111111111111111111111111111111111111111111111111'), (b'1111111111111111111111111111111111111111111111111111111111111111'),
(b'1000000000000000000000000000000000000000000000000000000000000000'), (b'1000000000000000000000000000000000000000000000000000000000000000'),
...@@ -142,20 +130,6 @@ count(*) ...@@ -142,20 +130,6 @@ count(*)
select hex(a) from t3; select hex(a) from t3;
hex(a) hex(a)
1 1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
10 10
11 11
12 12
...@@ -172,6 +146,7 @@ F ...@@ -172,6 +146,7 @@ F
1D 1D
1E 1E
1F 1F
2
20 20
21 21
22 22
...@@ -188,6 +163,7 @@ F ...@@ -188,6 +163,7 @@ F
2D 2D
2E 2E
2F 2F
3
30 30
31 31
32 32
...@@ -204,6 +180,7 @@ F ...@@ -204,6 +180,7 @@ F
3D 3D
3E 3E
3F 3F
4
40 40
41 41
42 42
...@@ -220,6 +197,7 @@ F ...@@ -220,6 +197,7 @@ F
4D 4D
4E 4E
4F 4F
5
50 50
51 51
52 52
...@@ -235,6 +213,7 @@ F ...@@ -235,6 +213,7 @@ F
5D 5D
5E 5E
5F 5F
6
60 60
61 61
62 62
...@@ -251,6 +230,7 @@ F ...@@ -251,6 +230,7 @@ F
6D 6D
6E 6E
6F 6F
7
70 70
71 71
72 72
...@@ -267,6 +247,7 @@ F ...@@ -267,6 +247,7 @@ F
7D 7D
7E 7E
7F 7F
8
80 80
81 81
82 82
...@@ -283,6 +264,7 @@ F ...@@ -283,6 +264,7 @@ F
8D 8D
8E 8E
8F 8F
9
90 90
91 91
92 92
...@@ -299,6 +281,7 @@ F ...@@ -299,6 +281,7 @@ F
9D 9D
9E 9E
9F 9F
A
A0 A0
A1 A1
A2 A2
...@@ -315,6 +298,7 @@ AC ...@@ -315,6 +298,7 @@ AC
AD AD
AE AE
AF AF
B
B0 B0
B1 B1
B2 B2
...@@ -331,6 +315,7 @@ BC ...@@ -331,6 +315,7 @@ BC
BD BD
BE BE
BF BF
C
C0 C0
C1 C1
C2 C2
...@@ -347,6 +332,7 @@ CC ...@@ -347,6 +332,7 @@ CC
CD CD
CE CE
CF CF
D
D0 D0
D1 D1
D2 D2
...@@ -363,6 +349,7 @@ DC ...@@ -363,6 +349,7 @@ DC
DD DD
DE DE
DF DF
E
E0 E0
E1 E1
E2 E2
...@@ -379,6 +366,7 @@ EC ...@@ -379,6 +366,7 @@ EC
ED ED
EE EE
EF EF
F
F0 F0
F1 F1
F2 F2
...@@ -417,20 +405,6 @@ count(*) ...@@ -417,20 +405,6 @@ count(*)
31 31
select hex(a) from t4; select hex(a) from t4;
hex(a) hex(a)
2
3
4
5
6
7
8
9
A
B
C
D
E
F
10 10
11 11
12 12
...@@ -447,5 +421,19 @@ F ...@@ -447,5 +421,19 @@ F
1D 1D
1E 1E
1F 1F
2
20 20
3
4
5
6
7
8
9
A
B
C
D
E
F
drop table t4; drop table t4;
create table t1 (a timestamp not null, primary key(a)) engine='InnoDB' create table t1 (a timestamp not null, primary key(a)) engine='InnoDB'
partition by key (a) ( partition by key (a) (
partition pa1 DATA DIRECTORY = partition pa1 max_rows=20 min_rows=2,
'/tmp' INDEX DIRECTORY = partition pa2 max_rows=30 min_rows=3,
'/tmp' max_rows=20 min_rows=2, partition pa3 max_rows=30 min_rows=4,
partition pa2 DATA DIRECTORY = partition pa4 max_rows=40 min_rows=2);
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=3,
partition pa3 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=4,
partition pa4 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=40 min_rows=2);
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`a` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `a` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`a`) PRIMARY KEY (`a`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB) */ ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = InnoDB) */
insert into t1 values ('1975-01-01 21:21:21'), ('2020-12-31 12:10:30'), ('1980-10-14 03:03'), ('2000-06-15 23:59'); insert into t1 values ('1975-01-01 21:21:21'), ('2020-12-31 12:10:30'), ('1980-10-14 03:03'), ('2000-06-15 23:59');
select * from t1; select * from t1;
a a
...@@ -281,24 +273,16 @@ a ...@@ -281,24 +273,16 @@ a
drop table t4; drop table t4;
create table t1 (a date not null, primary key(a)) engine='InnoDB' create table t1 (a date not null, primary key(a)) engine='InnoDB'
partition by key (a) ( partition by key (a) (
partition pa1 DATA DIRECTORY = partition pa1 max_rows=20 min_rows=2,
'/tmp' INDEX DIRECTORY = partition pa2 max_rows=30 min_rows=3,
'/tmp' max_rows=20 min_rows=2, partition pa3 max_rows=30 min_rows=4,
partition pa2 DATA DIRECTORY = partition pa4 max_rows=40 min_rows=2);
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=3,
partition pa3 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=4,
partition pa4 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=40 min_rows=2);
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`a` date NOT NULL, `a` date NOT NULL,
PRIMARY KEY (`a`) PRIMARY KEY (`a`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB) */ ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = InnoDB) */
insert into t1 values ('1975-01-01'), ('2020-12-31'), ('1980-10-14'), ('2000-06-15'); insert into t1 values ('1975-01-01'), ('2020-12-31'), ('1980-10-14'), ('2000-06-15');
select * from t1; select * from t1;
a a
...@@ -608,24 +592,16 @@ a ...@@ -608,24 +592,16 @@ a
drop table t4; drop table t4;
create table t1 (a time not null, primary key(a)) engine='InnoDB' create table t1 (a time not null, primary key(a)) engine='InnoDB'
partition by key (a) ( partition by key (a) (
partition pa1 DATA DIRECTORY = partition pa1 max_rows=20 min_rows=2,
'/tmp' INDEX DIRECTORY = partition pa2 max_rows=30 min_rows=3,
'/tmp' max_rows=20 min_rows=2, partition pa3 max_rows=30 min_rows=4,
partition pa2 DATA DIRECTORY = partition pa4 max_rows=40 min_rows=2);
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=3,
partition pa3 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=4,
partition pa4 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=40 min_rows=2);
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`a` time NOT NULL, `a` time NOT NULL,
PRIMARY KEY (`a`) PRIMARY KEY (`a`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB) */ ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = InnoDB) */
insert into t1 values ('21:21:21'), ('12:10:30'), ('03:03:03'), ('23:59'); insert into t1 values ('21:21:21'), ('12:10:30'), ('03:03:03'), ('23:59');
select * from t1; select * from t1;
a a
...@@ -1073,24 +1049,16 @@ a ...@@ -1073,24 +1049,16 @@ a
drop table t4; drop table t4;
create table t1 (a datetime not null, primary key(a)) engine='InnoDB' create table t1 (a datetime not null, primary key(a)) engine='InnoDB'
partition by key (a) ( partition by key (a) (
partition pa1 DATA DIRECTORY = partition pa1 max_rows=20 min_rows=2,
'/tmp' INDEX DIRECTORY = partition pa2 max_rows=30 min_rows=3,
'/tmp' max_rows=20 min_rows=2, partition pa3 max_rows=30 min_rows=4,
partition pa2 DATA DIRECTORY = partition pa4 max_rows=40 min_rows=2);
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=3,
partition pa3 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=4,
partition pa4 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=40 min_rows=2);
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`a` datetime NOT NULL, `a` datetime NOT NULL,
PRIMARY KEY (`a`) PRIMARY KEY (`a`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB) */ ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = InnoDB) */
insert into t1 values ('1975-01-01 21:21:21'), ('2020-12-31 12:10:30'), ('1980-10-14 03:03'), ('2000-06-15 23:59'); insert into t1 values ('1975-01-01 21:21:21'), ('2020-12-31 12:10:30'), ('1980-10-14 03:03'), ('2000-06-15 23:59');
select * from t1; select * from t1;
a a
...@@ -1350,24 +1318,16 @@ a ...@@ -1350,24 +1318,16 @@ a
drop table t4; drop table t4;
create table t1 (a year not null, primary key(a)) engine='InnoDB' create table t1 (a year not null, primary key(a)) engine='InnoDB'
partition by key (a) ( partition by key (a) (
partition pa1 DATA DIRECTORY = partition pa1 max_rows=20 min_rows=2,
'/tmp' INDEX DIRECTORY = partition pa2 max_rows=30 min_rows=3,
'/tmp' max_rows=20 min_rows=2, partition pa3 max_rows=30 min_rows=4,
partition pa2 DATA DIRECTORY = partition pa4 max_rows=40 min_rows=2);
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=3,
partition pa3 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=4,
partition pa4 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=40 min_rows=2);
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`a` year(4) NOT NULL, `a` year(4) NOT NULL,
PRIMARY KEY (`a`) PRIMARY KEY (`a`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB) */ ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = InnoDB) */
insert into t1 values ('1975'), (2020), ('1980'), ('2000'); insert into t1 values ('1975'), (2020), ('1980'), ('2000');
select * from t1; select * from t1;
a a
......
create table t1 (a timestamp not null, primary key(a)) engine='MyISAM' create table t1 (a timestamp not null, primary key(a)) engine='MyISAM'
partition by key (a) ( partition by key (a) (
partition pa1 DATA DIRECTORY = partition pa1 max_rows=20 min_rows=2,
'/tmp' INDEX DIRECTORY = partition pa2 max_rows=30 min_rows=3,
'/tmp' max_rows=20 min_rows=2, partition pa3 max_rows=30 min_rows=4,
partition pa2 DATA DIRECTORY = partition pa4 max_rows=40 min_rows=2);
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=3,
partition pa3 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=4,
partition pa4 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=40 min_rows=2);
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`a` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `a` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`a`) PRIMARY KEY (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM) */ ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = MyISAM) */
insert into t1 values ('1975-01-01 21:21:21'), ('2020-12-31 12:10:30'), ('1980-10-14 03:03'), ('2000-06-15 23:59'); insert into t1 values ('1975-01-01 21:21:21'), ('2020-12-31 12:10:30'), ('1980-10-14 03:03'), ('2000-06-15 23:59');
select * from t1; select * from t1;
a a
...@@ -281,24 +273,16 @@ a ...@@ -281,24 +273,16 @@ a
drop table t4; drop table t4;
create table t1 (a date not null, primary key(a)) engine='MyISAM' create table t1 (a date not null, primary key(a)) engine='MyISAM'
partition by key (a) ( partition by key (a) (
partition pa1 DATA DIRECTORY = partition pa1 max_rows=20 min_rows=2,
'/tmp' INDEX DIRECTORY = partition pa2 max_rows=30 min_rows=3,
'/tmp' max_rows=20 min_rows=2, partition pa3 max_rows=30 min_rows=4,
partition pa2 DATA DIRECTORY = partition pa4 max_rows=40 min_rows=2);
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=3,
partition pa3 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=4,
partition pa4 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=40 min_rows=2);
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`a` date NOT NULL, `a` date NOT NULL,
PRIMARY KEY (`a`) PRIMARY KEY (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM) */ ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = MyISAM) */
insert into t1 values ('1975-01-01'), ('2020-12-31'), ('1980-10-14'), ('2000-06-15'); insert into t1 values ('1975-01-01'), ('2020-12-31'), ('1980-10-14'), ('2000-06-15');
select * from t1; select * from t1;
a a
...@@ -608,24 +592,16 @@ a ...@@ -608,24 +592,16 @@ a
drop table t4; drop table t4;
create table t1 (a time not null, primary key(a)) engine='MyISAM' create table t1 (a time not null, primary key(a)) engine='MyISAM'
partition by key (a) ( partition by key (a) (
partition pa1 DATA DIRECTORY = partition pa1 max_rows=20 min_rows=2,
'/tmp' INDEX DIRECTORY = partition pa2 max_rows=30 min_rows=3,
'/tmp' max_rows=20 min_rows=2, partition pa3 max_rows=30 min_rows=4,
partition pa2 DATA DIRECTORY = partition pa4 max_rows=40 min_rows=2);
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=3,
partition pa3 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=4,
partition pa4 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=40 min_rows=2);
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`a` time NOT NULL, `a` time NOT NULL,
PRIMARY KEY (`a`) PRIMARY KEY (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM) */ ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = MyISAM) */
insert into t1 values ('21:21:21'), ('12:10:30'), ('03:03:03'), ('23:59'); insert into t1 values ('21:21:21'), ('12:10:30'), ('03:03:03'), ('23:59');
select * from t1; select * from t1;
a a
...@@ -1073,24 +1049,16 @@ a ...@@ -1073,24 +1049,16 @@ a
drop table t4; drop table t4;
create table t1 (a datetime not null, primary key(a)) engine='MyISAM' create table t1 (a datetime not null, primary key(a)) engine='MyISAM'
partition by key (a) ( partition by key (a) (
partition pa1 DATA DIRECTORY = partition pa1 max_rows=20 min_rows=2,
'/tmp' INDEX DIRECTORY = partition pa2 max_rows=30 min_rows=3,
'/tmp' max_rows=20 min_rows=2, partition pa3 max_rows=30 min_rows=4,
partition pa2 DATA DIRECTORY = partition pa4 max_rows=40 min_rows=2);
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=3,
partition pa3 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=4,
partition pa4 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=40 min_rows=2);
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`a` datetime NOT NULL, `a` datetime NOT NULL,
PRIMARY KEY (`a`) PRIMARY KEY (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM) */ ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = MyISAM) */
insert into t1 values ('1975-01-01 21:21:21'), ('2020-12-31 12:10:30'), ('1980-10-14 03:03'), ('2000-06-15 23:59'); insert into t1 values ('1975-01-01 21:21:21'), ('2020-12-31 12:10:30'), ('1980-10-14 03:03'), ('2000-06-15 23:59');
select * from t1; select * from t1;
a a
...@@ -1350,24 +1318,16 @@ a ...@@ -1350,24 +1318,16 @@ a
drop table t4; drop table t4;
create table t1 (a year not null, primary key(a)) engine='MyISAM' create table t1 (a year not null, primary key(a)) engine='MyISAM'
partition by key (a) ( partition by key (a) (
partition pa1 DATA DIRECTORY = partition pa1 max_rows=20 min_rows=2,
'/tmp' INDEX DIRECTORY = partition pa2 max_rows=30 min_rows=3,
'/tmp' max_rows=20 min_rows=2, partition pa3 max_rows=30 min_rows=4,
partition pa2 DATA DIRECTORY = partition pa4 max_rows=40 min_rows=2);
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=3,
partition pa3 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=4,
partition pa4 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=40 min_rows=2);
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`a` year(4) NOT NULL, `a` year(4) NOT NULL,
PRIMARY KEY (`a`) PRIMARY KEY (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM) */ ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = MyISAM) */
insert into t1 values ('1975'), (2020), ('1980'), ('2000'); insert into t1 values ('1975'), (2020), ('1980'), ('2000');
select * from t1; select * from t1;
a a
......
create table t1 (a decimal(10,4) not null, primary key(a)) engine='InnoDB' create table t1 (a decimal(10,4) not null, primary key(a)) engine='InnoDB'
partition by key (a) ( partition by key (a) (
partition pa1 DATA DIRECTORY = partition pa1 max_rows=20 min_rows=2,
'/tmp' INDEX DIRECTORY = partition pa2 max_rows=30 min_rows=3,
'/tmp' max_rows=20 min_rows=2, partition pa3 max_rows=30 min_rows=4,
partition pa2 DATA DIRECTORY = partition pa4 max_rows=40 min_rows=2);
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=3,
partition pa3 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=4,
partition pa4 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=40 min_rows=2);
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`a` decimal(10,4) NOT NULL, `a` decimal(10,4) NOT NULL,
PRIMARY KEY (`a`) PRIMARY KEY (`a`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB) */ ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = InnoDB) */
insert into t1 values (999999.9999), (-999999.9999), (123456.7899), (-123456.7899), (-1.5), (1), (0), (-1), (1.5), (1234.567), (-1234.567); insert into t1 values (999999.9999), (-999999.9999), (123456.7899), (-123456.7899), (-1.5), (1), (0), (-1), (1.5), (1234.567), (-1234.567);
select * from t1; select * from t1;
a a
......
create table t1 (a decimal(10,4) not null, primary key(a)) engine='MYISAM' create table t1 (a decimal(10,4) not null, primary key(a)) engine='MYISAM'
partition by key (a) ( partition by key (a) (
partition pa1 DATA DIRECTORY = partition pa1 max_rows=20 min_rows=2,
'/tmp' INDEX DIRECTORY = partition pa2 max_rows=30 min_rows=3,
'/tmp' max_rows=20 min_rows=2, partition pa3 max_rows=30 min_rows=4,
partition pa2 DATA DIRECTORY = partition pa4 max_rows=40 min_rows=2);
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=3,
partition pa3 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=4,
partition pa4 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=40 min_rows=2);
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`a` decimal(10,4) NOT NULL, `a` decimal(10,4) NOT NULL,
PRIMARY KEY (`a`) PRIMARY KEY (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM) */ ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = MyISAM) */
insert into t1 values (999999.9999), (-999999.9999), (123456.7899), (-123456.7899), (-1.5), (1), (0), (-1), (1.5), (1234.567), (-1234.567); insert into t1 values (999999.9999), (-999999.9999), (123456.7899), (-123456.7899), (-1.5), (1), (0), (-1), (1.5), (1234.567), (-1234.567);
select * from t1; select * from t1;
a a
......
create table t1 (a float not null, primary key(a)) engine='InnoDB' create table t1 (a float not null, primary key(a)) engine='InnoDB'
partition by key (a) ( partition by key (a) (
partition pa1 DATA DIRECTORY = partition pa1 max_rows=20 min_rows=2,
'/tmp' INDEX DIRECTORY = partition pa2 max_rows=30 min_rows=3,
'/tmp' max_rows=20 min_rows=2, partition pa3 max_rows=30 min_rows=4,
partition pa2 DATA DIRECTORY = partition pa4 max_rows=40 min_rows=2);
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=3,
partition pa3 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=4,
partition pa4 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=40 min_rows=2);
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`a` float NOT NULL, `a` float NOT NULL,
PRIMARY KEY (`a`) PRIMARY KEY (`a`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB) */ ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = InnoDB) */
insert into t1 values (-3.402823466E+38), (3.402823466E+38), (-1.5), (-1), (0), (1), (1.5); insert into t1 values (-3.402823466E+38), (3.402823466E+38), (-1.5), (-1), (0), (1), (1.5);
select * from t1; select * from t1;
a a
...@@ -91,24 +83,16 @@ count(*) ...@@ -91,24 +83,16 @@ count(*)
drop table t2; drop table t2;
create table t1 (a double not null, primary key(a)) engine='InnoDB' create table t1 (a double not null, primary key(a)) engine='InnoDB'
partition by key (a) ( partition by key (a) (
partition pa1 DATA DIRECTORY = partition pa1 max_rows=20 min_rows=2,
'/tmp' INDEX DIRECTORY = partition pa2 max_rows=30 min_rows=3,
'/tmp' max_rows=20 min_rows=2, partition pa3 max_rows=30 min_rows=4,
partition pa2 DATA DIRECTORY = partition pa4 max_rows=40 min_rows=2);
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=3,
partition pa3 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=4,
partition pa4 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=40 min_rows=2);
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`a` double NOT NULL, `a` double NOT NULL,
PRIMARY KEY (`a`) PRIMARY KEY (`a`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB) */ ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = InnoDB) */
insert into t1 values (-2.2250738585072014E+208), (-2.2250738585072014E-208), (-1.5), (-1), (0), (1.5), (1234.567), (2.2250738585072014E+208); insert into t1 values (-2.2250738585072014E+208), (-2.2250738585072014E-208), (-1.5), (-1), (0), (1.5), (1234.567), (2.2250738585072014E+208);
select * from t1; select * from t1;
a a
......
create table t1 (a float not null, primary key(a)) engine='MYISAM' create table t1 (a float not null, primary key(a)) engine='MYISAM'
partition by key (a) ( partition by key (a) (
partition pa1 DATA DIRECTORY = partition pa1 max_rows=20 min_rows=2,
'/tmp' INDEX DIRECTORY = partition pa2 max_rows=30 min_rows=3,
'/tmp' max_rows=20 min_rows=2, partition pa3 max_rows=30 min_rows=4,
partition pa2 DATA DIRECTORY = partition pa4 max_rows=40 min_rows=2);
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=3,
partition pa3 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=4,
partition pa4 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=40 min_rows=2);
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`a` float NOT NULL, `a` float NOT NULL,
PRIMARY KEY (`a`) PRIMARY KEY (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM) */ ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = MyISAM) */
insert into t1 values (-3.402823466E+38), (3.402823466E+38), (-1.5), (-1), (0), (1), (1.5); insert into t1 values (-3.402823466E+38), (3.402823466E+38), (-1.5), (-1), (0), (1), (1.5);
select * from t1; select * from t1;
a a
...@@ -91,24 +83,16 @@ count(*) ...@@ -91,24 +83,16 @@ count(*)
drop table t2; drop table t2;
create table t1 (a double not null, primary key(a)) engine='MYISAM' create table t1 (a double not null, primary key(a)) engine='MYISAM'
partition by key (a) ( partition by key (a) (
partition pa1 DATA DIRECTORY = partition pa1 max_rows=20 min_rows=2,
'/tmp' INDEX DIRECTORY = partition pa2 max_rows=30 min_rows=3,
'/tmp' max_rows=20 min_rows=2, partition pa3 max_rows=30 min_rows=4,
partition pa2 DATA DIRECTORY = partition pa4 max_rows=40 min_rows=2);
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=3,
partition pa3 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=4,
partition pa4 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=40 min_rows=2);
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`a` double NOT NULL, `a` double NOT NULL,
PRIMARY KEY (`a`) PRIMARY KEY (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM) */ ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = MyISAM) */
insert into t1 values (-2.2250738585072014E+208), (-2.2250738585072014E-208), (-1.5), (-1), (0), (1.5), (1234.567), (2.2250738585072014E+208); insert into t1 values (-2.2250738585072014E+208), (-2.2250738585072014E-208), (-1.5), (-1), (0), (1.5), (1234.567), (2.2250738585072014E+208);
select * from t1; select * from t1;
a a
......
create table t1 (a tinyint unsigned not null, primary key(a)) engine='InnoDB' create table t1 (a tinyint unsigned not null, primary key(a)) engine='InnoDB'
partition by key (a) ( partition by key (a) (
partition pa1 DATA DIRECTORY = partition pa1 max_rows=20 min_rows=2,
'/tmp' INDEX DIRECTORY = partition pa2 max_rows=30 min_rows=3,
'/tmp' max_rows=20 min_rows=2, partition pa3 max_rows=30 min_rows=4,
partition pa2 DATA DIRECTORY = partition pa4 max_rows=40 min_rows=2);
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=3,
partition pa3 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=4,
partition pa4 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=40 min_rows=2);
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`a` tinyint(3) unsigned NOT NULL, `a` tinyint(3) unsigned NOT NULL,
PRIMARY KEY (`a`) PRIMARY KEY (`a`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB) */ ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = InnoDB) */
insert into t1 values (255), (254), (253), (252), (1), (2), (128); insert into t1 values (255), (254), (253), (252), (1), (2), (128);
select * from t1; select * from t1;
a a
...@@ -108,24 +100,16 @@ a ...@@ -108,24 +100,16 @@ a
drop table t3; drop table t3;
create table t1 (a smallint unsigned not null, primary key(a)) engine='InnoDB' create table t1 (a smallint unsigned not null, primary key(a)) engine='InnoDB'
partition by key (a) ( partition by key (a) (
partition pa1 DATA DIRECTORY = partition pa1 max_rows=20 min_rows=2,
'/tmp' INDEX DIRECTORY = partition pa2 max_rows=30 min_rows=3,
'/tmp' max_rows=20 min_rows=2, partition pa3 max_rows=30 min_rows=4,
partition pa2 DATA DIRECTORY = partition pa4 max_rows=40 min_rows=2);
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=3,
partition pa3 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=4,
partition pa4 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=40 min_rows=2);
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`a` smallint(5) unsigned NOT NULL, `a` smallint(5) unsigned NOT NULL,
PRIMARY KEY (`a`) PRIMARY KEY (`a`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB) */ ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = InnoDB) */
insert into t1 values (65535), (65534), (65533), (65532), (1), (2), (256); insert into t1 values (65535), (65534), (65533), (65532), (1), (2), (256);
select * from t1; select * from t1;
a a
...@@ -216,24 +200,16 @@ a ...@@ -216,24 +200,16 @@ a
drop table t3; drop table t3;
create table t1 (a int unsigned not null, primary key(a)) engine='InnoDB' create table t1 (a int unsigned not null, primary key(a)) engine='InnoDB'
partition by key (a) ( partition by key (a) (
partition pa1 DATA DIRECTORY = partition pa1 max_rows=20 min_rows=2,
'/tmp' INDEX DIRECTORY = partition pa2 max_rows=30 min_rows=3,
'/tmp' max_rows=20 min_rows=2, partition pa3 max_rows=30 min_rows=4,
partition pa2 DATA DIRECTORY = partition pa4 max_rows=40 min_rows=2);
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=3,
partition pa3 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=4,
partition pa4 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=40 min_rows=2);
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`a` int(10) unsigned NOT NULL, `a` int(10) unsigned NOT NULL,
PRIMARY KEY (`a`) PRIMARY KEY (`a`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB) */ ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = InnoDB) */
insert into t1 values (4294967295), (4294967294), (4294967293), (4294967292), (1), (2), (65535); insert into t1 values (4294967295), (4294967294), (4294967293), (4294967292), (1), (2), (65535);
select * from t1; select * from t1;
a a
...@@ -324,24 +300,16 @@ a ...@@ -324,24 +300,16 @@ a
drop table t3; drop table t3;
create table t1 (a mediumint unsigned not null, primary key(a)) engine='InnoDB' create table t1 (a mediumint unsigned not null, primary key(a)) engine='InnoDB'
partition by key (a) ( partition by key (a) (
partition pa1 DATA DIRECTORY = partition pa1 max_rows=20 min_rows=2,
'/tmp' INDEX DIRECTORY = partition pa2 max_rows=30 min_rows=3,
'/tmp' max_rows=20 min_rows=2, partition pa3 max_rows=30 min_rows=4,
partition pa2 DATA DIRECTORY = partition pa4 max_rows=40 min_rows=2);
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=3,
partition pa3 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=4,
partition pa4 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=40 min_rows=2);
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`a` mediumint(8) unsigned NOT NULL, `a` mediumint(8) unsigned NOT NULL,
PRIMARY KEY (`a`) PRIMARY KEY (`a`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB) */ ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = InnoDB) */
insert into t1 values (16777215), (16777214), (16777213), (16777212), (1), (2), (65535); insert into t1 values (16777215), (16777214), (16777213), (16777212), (1), (2), (65535);
select * from t1; select * from t1;
a a
...@@ -432,24 +400,16 @@ a ...@@ -432,24 +400,16 @@ a
drop table t3; drop table t3;
create table t1 (a bigint unsigned not null, primary key(a)) engine='InnoDB' create table t1 (a bigint unsigned not null, primary key(a)) engine='InnoDB'
partition by key (a) ( partition by key (a) (
partition pa1 DATA DIRECTORY = partition pa1 max_rows=20 min_rows=2,
'/tmp' INDEX DIRECTORY = partition pa2 max_rows=30 min_rows=3,
'/tmp' max_rows=20 min_rows=2, partition pa3 max_rows=30 min_rows=4,
partition pa2 DATA DIRECTORY = partition pa4 max_rows=40 min_rows=2);
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=3,
partition pa3 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=4,
partition pa4 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=40 min_rows=2);
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`a` bigint(20) unsigned NOT NULL, `a` bigint(20) unsigned NOT NULL,
PRIMARY KEY (`a`) PRIMARY KEY (`a`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = InnoDB) */ ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = InnoDB, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = InnoDB, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = InnoDB, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = InnoDB) */
insert into t1 values (18446744073709551615), (0xFFFFFFFFFFFFFFFE), (18446744073709551613), (18446744073709551612), (1), (2), (65535); insert into t1 values (18446744073709551615), (0xFFFFFFFFFFFFFFFE), (18446744073709551613), (18446744073709551612), (1), (2), (65535);
select * from t1; select * from t1;
a a
......
create table t1 (a tinyint unsigned not null, primary key(a)) engine='MYISAM' create table t1 (a tinyint unsigned not null, primary key(a)) engine='MYISAM'
partition by key (a) ( partition by key (a) (
partition pa1 DATA DIRECTORY = partition pa1 max_rows=20 min_rows=2,
'/tmp' INDEX DIRECTORY = partition pa2 max_rows=30 min_rows=3,
'/tmp' max_rows=20 min_rows=2, partition pa3 max_rows=30 min_rows=4,
partition pa2 DATA DIRECTORY = partition pa4 max_rows=40 min_rows=2);
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=3,
partition pa3 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=4,
partition pa4 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=40 min_rows=2);
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`a` tinyint(3) unsigned NOT NULL, `a` tinyint(3) unsigned NOT NULL,
PRIMARY KEY (`a`) PRIMARY KEY (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM) */ ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = MyISAM) */
insert into t1 values (255), (254), (253), (252), (1), (2), (128); insert into t1 values (255), (254), (253), (252), (1), (2), (128);
select * from t1; select * from t1;
a a
...@@ -108,24 +100,16 @@ a ...@@ -108,24 +100,16 @@ a
drop table t3; drop table t3;
create table t1 (a smallint unsigned not null, primary key(a)) engine='MYISAM' create table t1 (a smallint unsigned not null, primary key(a)) engine='MYISAM'
partition by key (a) ( partition by key (a) (
partition pa1 DATA DIRECTORY = partition pa1 max_rows=20 min_rows=2,
'/tmp' INDEX DIRECTORY = partition pa2 max_rows=30 min_rows=3,
'/tmp' max_rows=20 min_rows=2, partition pa3 max_rows=30 min_rows=4,
partition pa2 DATA DIRECTORY = partition pa4 max_rows=40 min_rows=2);
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=3,
partition pa3 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=4,
partition pa4 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=40 min_rows=2);
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`a` smallint(5) unsigned NOT NULL, `a` smallint(5) unsigned NOT NULL,
PRIMARY KEY (`a`) PRIMARY KEY (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM) */ ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = MyISAM) */
insert into t1 values (65535), (65534), (65533), (65532), (1), (2), (256); insert into t1 values (65535), (65534), (65533), (65532), (1), (2), (256);
select * from t1; select * from t1;
a a
...@@ -216,24 +200,16 @@ a ...@@ -216,24 +200,16 @@ a
drop table t3; drop table t3;
create table t1 (a int unsigned not null, primary key(a)) engine='MYISAM' create table t1 (a int unsigned not null, primary key(a)) engine='MYISAM'
partition by key (a) ( partition by key (a) (
partition pa1 DATA DIRECTORY = partition pa1 max_rows=20 min_rows=2,
'/tmp' INDEX DIRECTORY = partition pa2 max_rows=30 min_rows=3,
'/tmp' max_rows=20 min_rows=2, partition pa3 max_rows=30 min_rows=4,
partition pa2 DATA DIRECTORY = partition pa4 max_rows=40 min_rows=2);
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=3,
partition pa3 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=4,
partition pa4 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=40 min_rows=2);
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`a` int(10) unsigned NOT NULL, `a` int(10) unsigned NOT NULL,
PRIMARY KEY (`a`) PRIMARY KEY (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM) */ ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = MyISAM) */
insert into t1 values (4294967295), (4294967294), (4294967293), (4294967292), (1), (2), (65535); insert into t1 values (4294967295), (4294967294), (4294967293), (4294967292), (1), (2), (65535);
select * from t1; select * from t1;
a a
...@@ -324,24 +300,16 @@ a ...@@ -324,24 +300,16 @@ a
drop table t3; drop table t3;
create table t1 (a mediumint unsigned not null, primary key(a)) engine='MYISAM' create table t1 (a mediumint unsigned not null, primary key(a)) engine='MYISAM'
partition by key (a) ( partition by key (a) (
partition pa1 DATA DIRECTORY = partition pa1 max_rows=20 min_rows=2,
'/tmp' INDEX DIRECTORY = partition pa2 max_rows=30 min_rows=3,
'/tmp' max_rows=20 min_rows=2, partition pa3 max_rows=30 min_rows=4,
partition pa2 DATA DIRECTORY = partition pa4 max_rows=40 min_rows=2);
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=3,
partition pa3 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=4,
partition pa4 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=40 min_rows=2);
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`a` mediumint(8) unsigned NOT NULL, `a` mediumint(8) unsigned NOT NULL,
PRIMARY KEY (`a`) PRIMARY KEY (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM) */ ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = MyISAM) */
insert into t1 values (16777215), (16777214), (16777213), (16777212), (1), (2), (65535); insert into t1 values (16777215), (16777214), (16777213), (16777212), (1), (2), (65535);
select * from t1; select * from t1;
a a
...@@ -432,24 +400,16 @@ a ...@@ -432,24 +400,16 @@ a
drop table t3; drop table t3;
create table t1 (a bigint unsigned not null, primary key(a)) engine='MYISAM' create table t1 (a bigint unsigned not null, primary key(a)) engine='MYISAM'
partition by key (a) ( partition by key (a) (
partition pa1 DATA DIRECTORY = partition pa1 max_rows=20 min_rows=2,
'/tmp' INDEX DIRECTORY = partition pa2 max_rows=30 min_rows=3,
'/tmp' max_rows=20 min_rows=2, partition pa3 max_rows=30 min_rows=4,
partition pa2 DATA DIRECTORY = partition pa4 max_rows=40 min_rows=2);
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=3,
partition pa3 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=30 min_rows=4,
partition pa4 DATA DIRECTORY =
'/tmp' INDEX DIRECTORY =
'/tmp' max_rows=40 min_rows=2);
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
`a` bigint(20) unsigned NOT NULL, `a` bigint(20) unsigned NOT NULL,
PRIMARY KEY (`a`) PRIMARY KEY (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 DATA DIRECTORY = '/tmp' INDEX DIRECTORY = '/tmp' ENGINE = MyISAM) */ ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (a) (PARTITION pa1 MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM, PARTITION pa2 MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM, PARTITION pa3 MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM, PARTITION pa4 MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = MyISAM) */
insert into t1 values (18446744073709551615), (0xFFFFFFFFFFFFFFFE), (18446744073709551613), (18446744073709551612), (1), (2), (65535); insert into t1 values (18446744073709551615), (0xFFFFFFFFFFFFFFFE), (18446744073709551613), (18446744073709551612), (1), (2), (65535);
select * from t1; select * from t1;
a a
......
This diff is collapsed.
This diff is collapsed.
...@@ -1773,4 +1773,15 @@ drop table t1; ...@@ -1773,4 +1773,15 @@ drop table t1;
CREATE TABLE t1(a INT) ENGINE=CSV; CREATE TABLE t1(a INT) ENGINE=CSV;
SHOW WARNINGS; SHOW WARNINGS;
#
# BUG#33067 - .
#
create table t1 (c1 tinyblob not null) engine=csv;
insert into t1 values("This");
--enable_info
update t1 set c1="That" where c1="This";
--disable_info
select * from t1;
drop table t1;
--echo End of 5.1 tests --echo End of 5.1 tests
...@@ -39,4 +39,17 @@ INSERT INTO t1 VALUES('A', 'A'), ('B', 'B'), ('C', 'C'); ...@@ -39,4 +39,17 @@ INSERT INTO t1 VALUES('A', 'A'), ('B', 'B'), ('C', 'C');
INSERT INTO t1 VALUES('A ', 'A '); INSERT INTO t1 VALUES('A ', 'A ');
DROP TABLE t1; DROP TABLE t1;
#
# Bug#32705 - myisam corruption: Key in wrong position
# at page 1024 with ucs2_bin
#
CREATE TABLE t1 (
c1 CHAR(255) CHARACTER SET UCS2 COLLATE UCS2_BIN NOT NULL,
KEY(c1)
) ENGINE=MyISAM;
INSERT INTO t1 VALUES ('marshall\'s');
INSERT INTO t1 VALUES ('marsh');
CHECK TABLE t1 EXTENDED;
DROP TABLE t1;
--echo End of 5.0 tests --echo End of 5.0 tests
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
$EXAMPLE_PLUGIN_OPT
"--plugin-load=;EXAMPLE=ha_example.so;"
--loose-plugin-example-enum-var=e2
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment