1source include/have_tokudb.inc;
2# test that varchar expansion is done inplace while varchar shrinkage is not
3
4--disable_warnings
5DROP TABLE IF EXISTS t;
6--enable_warnings
7
8SET SESSION TOKUDB_DISABLE_SLOW_ALTER=ON;
9
10CREATE TABLE t (a VARCHAR(1)) ENGINE=TokuDB;
11SHOW CREATE TABLE t;
12INSERT INTO t VALUES (null);
13
14# 1->1
15let $i=1
16EVAL ALTER TABLE t CHANGE COLUMN a a VARCHAR($i);
17
18# 1->2 ... 1023->1024 is supported
19# 1024 is an arbitrary limit >= 256
20let $i=2;
21while ($i <= 1024)
22{
23    # $i-1 -> $i
24    EVAL ALTER TABLE t CHANGE COLUMN a a VARCHAR($i);
25    # $i -> $i
26    EVAL ALTER TABLE t CHANGE COLUMN a a VARCHAR($i);
27    inc $i;
28}
29
30# shrink from 1024->$i where $i < 1024 is not supported
31let $i=1023;
32while ($i > 0)
33{
34    --replace_regex /MariaDB/XYZ/ /MySQL/XYZ/
35    --error ER_UNSUPPORTED_EXTENSION
36    EVAL ALTER TABLE t CHANGE COLUMN a a VARCHAR($i);
37    dec $i;
38}
39
40DROP TABLE t;
41
42
43
44
45
46