diff --git a/src/box/sql/parse.y b/src/box/sql/parse.y
index fb3639f3f9f0a3a5e2305a187bdaa11886b23e4b..92788ceb8f8d803e4956d2459888dc4b152ba34b 100644
--- a/src/box/sql/parse.y
+++ b/src/box/sql/parse.y
@@ -1487,21 +1487,13 @@ typedef(A) ::= BLOB_KW . { A.type = FIELD_TYPE_SCALAR; }
  typedef(A) ::= DATETIME . { A.type = FIELD_TYPE_NUMBER; }
 */
 
-%type char_len {int}
-typedef(A) ::= CHAR . {
-  A.type = FIELD_TYPE_STRING;
-}
 
 char_len(A) ::= LP INTEGER(B) RP . {
   (void) A;
   (void) B;
 }
 
-typedef(A) ::= CHAR char_len(B) . {
-  A.type = FIELD_TYPE_STRING;
-  (void) B;
-}
-
+%type char_len {int}
 typedef(A) ::= VARCHAR char_len(B) . {
   A.type = FIELD_TYPE_STRING;
   (void) B;
diff --git a/test/sql-tap/autoinc.test.lua b/test/sql-tap/autoinc.test.lua
index 5ec9fd63286a67f1ea62c9cc6c27718a933f407c..dc2f60e152644ceb3ba8d6aaaa698fc81bb4ba2a 100755
--- a/test/sql-tap/autoinc.test.lua
+++ b/test/sql-tap/autoinc.test.lua
@@ -805,7 +805,7 @@ test:do_test(
 test:do_catchsql_test(
     "autoinc-gh-3670",
     [[
-        CREATE TABLE t1 (s1 INT PRIMARY KEY AUTOINCREMENT, s2 CHAR(10));
+        CREATE TABLE t1 (s1 INT PRIMARY KEY AUTOINCREMENT, s2 VARCHAR(10));
         INSERT INTO t1 VALUES (1, 'a');
         INSERT INTO t1 SELECT s2, s2 FROM t1;
     ]], {
diff --git a/test/sql-tap/collation.test.lua b/test/sql-tap/collation.test.lua
index 1e55b00926401986323b2c81d74fc4239b271bb2..094d02c42adcb5e6e92462c2a2d17cace34a8c61 100755
--- a/test/sql-tap/collation.test.lua
+++ b/test/sql-tap/collation.test.lua
@@ -209,7 +209,7 @@ local like_testcases =
 {
     {"2.0",
     [[
-        CREATE TABLE tx1 (s1 CHAR(5) PRIMARY KEY);
+        CREATE TABLE tx1 (s1 VARCHAR(5) PRIMARY KEY);
         CREATE INDEX I1 on tx1(s1 collate "unicode_ci");
         INSERT INTO tx1 VALUES('aaa');
         INSERT INTO tx1 VALUES('Aab');
diff --git a/test/sql-tap/eqp.test.lua b/test/sql-tap/eqp.test.lua
index 5ef9999d8f5af4a695e3907bb4070022a70169d8..2aa2d96757303c4d0dd4ab62fe550046e8b51553 100755
--- a/test/sql-tap/eqp.test.lua
+++ b/test/sql-tap/eqp.test.lua
@@ -727,8 +727,8 @@ test:drop_all_tables()
 test:do_execsql_test(
     7.0,
     [[
-        CREATE TABLE t1(idt1  INT primary key, a INT, b INT, ex CHAR(100));
-        CREATE TABLE t2(idt2  INT primary key, a INT, b INT, ex CHAR(100));
+        CREATE TABLE t1(idt1  INT primary key, a INT, b INT, ex VARCHAR(100));
+        CREATE TABLE t2(idt2  INT primary key, a INT, b INT, ex VARCHAR(100));
         CREATE INDEX i1 ON t2(a);
     ]])
 
diff --git a/test/sql-tap/fkey1.test.lua b/test/sql-tap/fkey1.test.lua
index 557e557a5fa8111940e5237d5cac1547117a1a52..0464f2dcc81c4ac63cb827ba049b5a9f7f186ed1 100755
--- a/test/sql-tap/fkey1.test.lua
+++ b/test/sql-tap/fkey1.test.lua
@@ -241,9 +241,9 @@ test:do_select_tests(
         {"0",
             [[
                 CREATE TABLE T12 (A INTEGER PRIMARY KEY,
-                    B CHAR(5) UNIQUE);
+                    B VARCHAR(5) UNIQUE);
                 CREATE TABLE T13 (A INTEGER PRIMARY KEY,
-                    B CHAR(5) UNIQUE,
+                    B VARCHAR(5) UNIQUE,
                     FOREIGN KEY (B) REFERENCES T12 (B) ON UPDATE SET NULL);
                 INSERT INTO T12 VALUES (1,'a');
                 INSERT INTO T13 VALUES (1,'a');
diff --git a/test/sql-tap/func.test.lua b/test/sql-tap/func.test.lua
index 26e6f93ee4fc75f34aa8cf3047cc949e67fa17f2..889fc5867e5dd19409e12b19bab93e75c3ec1646 100755
--- a/test/sql-tap/func.test.lua
+++ b/test/sql-tap/func.test.lua
@@ -2853,7 +2853,7 @@ test:do_execsql_test(
 -- GROUP_CONCAT
 test:do_execsql_test(
     "func-72",
-    "CREATE TABLE t100(a INT PRIMARY KEY, b CHAR); \
+    "CREATE TABLE t100(a INT PRIMARY KEY, b VARCHAR(5)); \
      INSERT INTO t100 VALUES (1, CHAR(00)); \
      INSERT INTO t100 VALUES (2, CHAR(65, 00, 65)); \
      INSERT INTO t100 VALUES (3, CHAR(00)); \
diff --git a/test/sql-tap/resolver01.test.lua b/test/sql-tap/resolver01.test.lua
index d40e499824ab025b83e6f7d797170ebceec6f47c..aa383b34b853bf4c9fdd501afaf2b25a04ac482c 100755
--- a/test/sql-tap/resolver01.test.lua
+++ b/test/sql-tap/resolver01.test.lua
@@ -229,7 +229,7 @@ test:do_test(
     "resolver01-4.1",
     function ()
         test:execsql([[
-            CREATE TABLE t4(m CHAR(2) primary key);
+            CREATE TABLE t4(m VARCHAR(2) primary key);
             INSERT INTO t4 VALUES('az');
             INSERT INTO t4 VALUES('by');
             INSERT INTO t4 VALUES('cx');
@@ -257,7 +257,7 @@ test:do_test(
 test:do_execsql_test(
     "resolver01-5.1",
     [[
-        CREATE TABLE t5(m CHAR(2) primary key);
+        CREATE TABLE t5(m VARCHAR(2) primary key);
         INSERT INTO t5 VALUES('ax');
         INSERT INTO t5 VALUES('bx');
         INSERT INTO t5 VALUES('cy');
diff --git a/test/sql-tap/select6.test.lua b/test/sql-tap/select6.test.lua
index 49652a5a4a4632a068681bce50e884e0caca1a95..7f6cc79394a104001422c1f061d5f3a3f82b79fd 100755
--- a/test/sql-tap/select6.test.lua
+++ b/test/sql-tap/select6.test.lua
@@ -1059,8 +1059,8 @@ test:do_execsql_test(
     [[
         DROP TABLE t1;
         DROP TABLE t2;
-        CREATE TABLE t1 (s1 INT PRIMARY KEY, u CHAR UNIQUE);
-        CREATE TABLE t2 (s1 INT PRIMARY KEY, u CHAR);
+        CREATE TABLE t1 (s1 INT PRIMARY KEY, u VARCHAR(1) UNIQUE);
+        CREATE TABLE t2 (s1 INT PRIMARY KEY, u VARCHAR(1));
         INSERT INTO t1 VALUES (1,'');
         INSERT INTO t2 VALUES (1,'');
         SELECT COUNT(*) FROM t1 WHERE u IN
@@ -1075,7 +1075,7 @@ test:do_execsql_test(
     12.2,
     [[
         DROP TABLE t1;
-        CREATE TABLE t1 (s1 INT PRIMARY KEY, u CHAR);
+        CREATE TABLE t1 (s1 INT PRIMARY KEY, u VARCHAR(1));
         INSERT INTO t1 VALUES (1,'');
         SELECT COUNT(*) FROM t1 WHERE u IN
                 (SELECT u FROM t2 WHERE u IN (SELECT u FROM t1));
diff --git a/test/sql-tap/table.test.lua b/test/sql-tap/table.test.lua
index b1ea27878027e04070e445d900c8e9bd23f2297c..9c4048d4c519c11526788c66b46b0837f3287ac6 100755
--- a/test/sql-tap/table.test.lua
+++ b/test/sql-tap/table.test.lua
@@ -228,7 +228,7 @@ test:do_test(
 --
 local big_table = [[CREATE TABLE big(
   f1 varchar(20),
-  f2 char(10),
+  f2 varchar(10),
   f3 varchar(30) primary key,
   f4 text,
   f5 text,
@@ -893,7 +893,7 @@ test:do_execsql_test(
         CREATE TABLE t7(
            a integer primary key,
            b numeric(5,10),
-           c char(8),
+           c VARCHAR(8),
            d VARCHAR(9),
            e blob,
            f BLOB,
@@ -1405,7 +1405,7 @@ test:do_execsql_test(
     [[
         CREATE TABLE T23(
            id INT PRIMARY KEY,
-           u CHAR
+           u VARCHAR(1)
         );
     ]], {
         -- <table-23.2>
diff --git a/test/sql-tap/where2.test.lua b/test/sql-tap/where2.test.lua
index 2dd8b84c4a9dd252f61ba9871a2c279e087212c9..8eaf4053d43de39eb17c074975b703a59573eb55 100755
--- a/test/sql-tap/where2.test.lua
+++ b/test/sql-tap/where2.test.lua
@@ -631,7 +631,7 @@ test:do_test(
         "where2-6.7",
         function()
             test:execsql [[
-                CREATE TABLE t2249a(a TEXT PRIMARY KEY, x CHAR(100));
+                CREATE TABLE t2249a(a TEXT PRIMARY KEY, x VARCHAR(100));
                 CREATE TABLE t2249b(b INTEGER PRIMARY KEY);
                 INSERT INTO t2249a(a) VALUES('0123');
                 INSERT INTO t2249b VALUES(123);
@@ -1273,7 +1273,7 @@ test:do_execsql_test(
         "where2-12.1",
         function ()
             local data = test:execsql([[
-                CREATE TABLE t12(x INTEGER PRIMARY KEY, y INT, z CHAR(100));
+                CREATE TABLE t12(x INTEGER PRIMARY KEY, y INT, z VARCHAR(100));
                 CREATE INDEX t12y ON t12(y);
                 EXPLAIN QUERY PLAN
                   SELECT a.x, b.x
diff --git a/test/sql/collation.result b/test/sql/collation.result
index 07ba213deb9c0b607d5863ef84e5fb084745844b..ce5496c96759933542582981ec9ea6fa62613cf6 100644
--- a/test/sql/collation.result
+++ b/test/sql/collation.result
@@ -34,7 +34,7 @@ box.sql.execute("SELECT 1 LIMIT 1 COLLATE BINARY, 1;")
 ...
 -- gh-3052: upper/lower support only default locale
 -- For tr-TR result depends on collation
-box.sql.execute([[CREATE TABLE tu (descriptor CHAR(50) PRIMARY KEY, letter CHAR(50))]]);
+box.sql.execute([[CREATE TABLE tu (descriptor VARCHAR(50) PRIMARY KEY, letter VARCHAR(50))]]);
 ---
 ...
 box.internal.collation.create('TURKISH', 'ICU', 'tr-TR', {strength='primary'});
@@ -263,10 +263,10 @@ box.schema.user.drop('tmp')
 ...
 -- gh-3644 Foreign key update fails with "unicode_ci".
 -- Check that foreign key update doesn't fail with "unicode_ci".
-box.sql.execute('CREATE TABLE t0 (s1 CHAR(5) COLLATE "unicode_ci" UNIQUE, id INT PRIMARY KEY AUTOINCREMENT);')
+box.sql.execute('CREATE TABLE t0 (s1 VARCHAR(5) COLLATE "unicode_ci" UNIQUE, id INT PRIMARY KEY AUTOINCREMENT);')
 ---
 ...
-box.sql.execute('CREATE TABLE t1 (s1 INT PRIMARY KEY, s0 CHAR(5) COLLATE "unicode_ci" REFERENCES t0(s1));')
+box.sql.execute('CREATE TABLE t1 (s1 INT PRIMARY KEY, s0 VARCHAR(5) COLLATE "unicode_ci" REFERENCES t0(s1));')
 ---
 ...
 box.sql.execute("INSERT INTO t0(s1) VALUES ('a');")
@@ -294,10 +294,10 @@ box.sql.execute("DROP TABLE t0;")
 ---
 ...
 -- Check that foreign key update fails with default collation.
-box.sql.execute('CREATE TABLE t0 (s1 CHAR(5) UNIQUE, id INT PRIMARY KEY AUTOINCREMENT);')
+box.sql.execute('CREATE TABLE t0 (s1 VARCHAR(5) UNIQUE, id INT PRIMARY KEY AUTOINCREMENT);')
 ---
 ...
-box.sql.execute('CREATE TABLE t1 (s1 INT PRIMARY KEY, s0 CHAR(5) REFERENCES t0(s1));')
+box.sql.execute('CREATE TABLE t1 (s1 INT PRIMARY KEY, s0 VARCHAR(5) REFERENCES t0(s1));')
 ---
 ...
 box.sql.execute("INSERT INTO t0(s1) VALUES ('a');")
@@ -429,7 +429,7 @@ box.space.T4B:drop()
 ...
 -- gh-3537 Duplicate key error for an index that is not unique
 -- pk - default, sc - unicode_ci
-box.sql.execute('CREATE TABLE t3 (s1 CHAR(5) PRIMARY KEY);')
+box.sql.execute('CREATE TABLE t3 (s1 VARCHAR(5) PRIMARY KEY);')
 ---
 ...
 box.sql.execute('CREATE INDEX i3 ON t3 (s1 collate "unicode_ci");')
@@ -450,7 +450,7 @@ box.sql.execute("DROP TABLE t3;")
 ---
 ...
 -- pk - binary, sc - unicode
-box.sql.execute('CREATE TABLE t3b (s1 CHAR(5) collate "binary" PRIMARY KEY);')
+box.sql.execute('CREATE TABLE t3b (s1 VARCHAR(5) collate "binary" PRIMARY KEY);')
 ---
 ...
 box.sql.execute('CREATE INDEX i3b ON t3b (s1 collate "unicode");')
@@ -471,7 +471,7 @@ box.sql.execute("DROP TABLE t3b;")
 ---
 ...
 -- pk - binary, sc - unicode (make dup)
-box.sql.execute('CREATE TABLE t3b (s1 CHAR(5) collate "binary" PRIMARY KEY);')
+box.sql.execute('CREATE TABLE t3b (s1 VARCHAR(5) collate "binary" PRIMARY KEY);')
 ---
 ...
 box.sql.execute('CREATE INDEX i3b ON t3b (s1 collate "unicode");')
@@ -496,7 +496,7 @@ box.sql.execute("DROP TABLE t3b;")
 ---
 ...
 -- pk - unicode, sc - binary
-box.sql.execute('CREATE TABLE t3c (s1 CHAR(5) collate "unicode" PRIMARY KEY);')
+box.sql.execute('CREATE TABLE t3c (s1 VARCHAR(5) collate "unicode" PRIMARY KEY);')
 ---
 ...
 box.sql.execute('CREATE INDEX i3c ON t3c (s1 collate "binary");')
@@ -517,7 +517,7 @@ box.sql.execute("DROP TABLE t3c;")
 ---
 ...
 -- pk - unicode, sc - binary (make dup)
-box.sql.execute('CREATE TABLE t3c (s1 CHAR(5) collate "unicode" PRIMARY KEY);')
+box.sql.execute('CREATE TABLE t3c (s1 VARCHAR(5) collate "unicode" PRIMARY KEY);')
 ---
 ...
 box.sql.execute('CREATE INDEX i3c ON t3c (s1 collate "binary");')
@@ -542,7 +542,7 @@ box.sql.execute("DROP TABLE t3c;")
 ---
 ...
 -- pk - binary, sc - unicode_ci
-box.sql.execute('CREATE TABLE t3d (s1 CHAR(5) collate "binary" PRIMARY KEY);')
+box.sql.execute('CREATE TABLE t3d (s1 VARCHAR(5) collate "binary" PRIMARY KEY);')
 ---
 ...
 box.sql.execute('CREATE INDEX i3d ON t3d (s1 collate "unicode_ci");')
@@ -563,7 +563,7 @@ box.sql.execute("DROP TABLE t3d;")
 ---
 ...
 -- pk - binary, sc - unicode_ci (make dup)
-box.sql.execute('CREATE TABLE t3d (s1 CHAR(5) collate "binary" PRIMARY KEY);')
+box.sql.execute('CREATE TABLE t3d (s1 VARCHAR(5) collate "binary" PRIMARY KEY);')
 ---
 ...
 box.sql.execute('CREATE INDEX i3d ON t3d (s1 collate "unicode_ci");')
@@ -588,7 +588,7 @@ box.sql.execute("DROP TABLE t3d;")
 ---
 ...
 -- pk - unicode_ci, sc - binary (should fail)
-box.sql.execute('CREATE TABLE t3e (s1 CHAR(5) collate "unicode_ci" PRIMARY KEY);')
+box.sql.execute('CREATE TABLE t3e (s1 VARCHAR(5) collate "unicode_ci" PRIMARY KEY);')
 ---
 ...
 box.sql.execute('CREATE INDEX i3e ON t3e (s1 collate "binary");')
@@ -609,7 +609,7 @@ box.sql.execute("DROP TABLE t3e;")
 ---
 ...
 -- pk - unicode, sc - unicode_ci
-box.sql.execute('CREATE TABLE t3f (s1 CHAR(5) collate "unicode" PRIMARY KEY);')
+box.sql.execute('CREATE TABLE t3f (s1 VARCHAR(5) collate "unicode" PRIMARY KEY);')
 ---
 ...
 box.sql.execute('CREATE INDEX i3f ON t3f (s1 collate "unicode_ci");')
@@ -630,7 +630,7 @@ box.sql.execute("DROP TABLE t3f;")
 ---
 ...
 -- pk - unicode, sc - unicode_ci (make dup)
-box.sql.execute('CREATE TABLE t3f (s1 CHAR(5) collate "unicode" PRIMARY KEY);')
+box.sql.execute('CREATE TABLE t3f (s1 VARCHAR(5) collate "unicode" PRIMARY KEY);')
 ---
 ...
 box.sql.execute('CREATE INDEX i3f ON t3f (s1 collate "unicode_ci");')
@@ -655,7 +655,7 @@ box.sql.execute("DROP TABLE t3f;")
 ---
 ...
 -- pk - unicode_ci, sc - unicode (should fail)
-box.sql.execute('CREATE TABLE t3g (s1 CHAR(5) collate "unicode_ci" PRIMARY KEY);')
+box.sql.execute('CREATE TABLE t3g (s1 VARCHAR(5) collate "unicode_ci" PRIMARY KEY);')
 ---
 ...
 box.sql.execute('CREATE INDEX i3g ON t3g (s1 collate "unicode");')
@@ -676,7 +676,7 @@ box.sql.execute("DROP TABLE t3g;")
 ---
 ...
 -- pk - default, sc - multipart
-box.sql.execute('CREATE TABLE qms1 (w CHAR(5) PRIMARY KEY, n CHAR(5), q CHAR(5), s INTEGER);')
+box.sql.execute('CREATE TABLE qms1 (w VARCHAR(5) PRIMARY KEY, n VARCHAR(5), q VARCHAR(5), s INTEGER);')
 ---
 ...
 box.sql.execute('CREATE INDEX iqms1 ON qms1 (w collate "unicode_ci", n);')
@@ -696,7 +696,7 @@ box.sql.execute("SELECT * FROM qms1;")
 box.sql.execute("DROP TABLE qms1;")
 ---
 ...
-box.sql.execute('CREATE TABLE qms2 (w CHAR(5) PRIMARY KEY, n CHAR(5), q CHAR(5), s INTEGER);')
+box.sql.execute('CREATE TABLE qms2 (w VARCHAR(5) PRIMARY KEY, n VARCHAR(5), q VARCHAR(5), s INTEGER);')
 ---
 ...
 box.sql.execute('CREATE INDEX iqms2 ON qms2 (w collate "unicode", n);')
@@ -717,7 +717,7 @@ box.sql.execute("DROP TABLE qms2;")
 ---
 ...
 -- pk - multipart, sc overlaps with pk
-box.sql.execute('CREATE TABLE qms3 (w CHAR(5), n CHAR(5), q CHAR(5), s INTEGER, CONSTRAINT pk_qms3 PRIMARY KEY(w, n, q));')
+box.sql.execute('CREATE TABLE qms3 (w VARCHAR(5), n VARCHAR(5), q VARCHAR(5), s INTEGER, CONSTRAINT pk_qms3 PRIMARY KEY(w, n, q));')
 ---
 ...
 box.sql.execute('CREATE INDEX iqms3 ON qms3 (w collate "unicode_ci", s);')
@@ -737,7 +737,7 @@ box.sql.execute("SELECT * FROM qms3;")
 box.sql.execute("DROP TABLE qms3;")
 ---
 ...
-box.sql.execute('CREATE TABLE qms4 (w CHAR(5), n CHAR(5), q CHAR(5), s INTEGER, CONSTRAINT pk_qms4 PRIMARY KEY(w, n, q));')
+box.sql.execute('CREATE TABLE qms4 (w VARCHAR(5), n VARCHAR(5), q VARCHAR(5), s INTEGER, CONSTRAINT pk_qms4 PRIMARY KEY(w, n, q));')
 ---
 ...
 box.sql.execute('CREATE INDEX iqms4 ON qms4 (w collate "unicode", s);')
diff --git a/test/sql/collation.test.lua b/test/sql/collation.test.lua
index 189328db49de9ee0ac94fee8325ac28a72b679f6..65cf8fce882365dbd7b8385a4a90469ed51d7773 100644
--- a/test/sql/collation.test.lua
+++ b/test/sql/collation.test.lua
@@ -14,7 +14,7 @@ box.sql.execute("SELECT 1 LIMIT 1 COLLATE BINARY, 1;")
 
 -- gh-3052: upper/lower support only default locale
 -- For tr-TR result depends on collation
-box.sql.execute([[CREATE TABLE tu (descriptor CHAR(50) PRIMARY KEY, letter CHAR(50))]]);
+box.sql.execute([[CREATE TABLE tu (descriptor VARCHAR(50) PRIMARY KEY, letter VARCHAR(50))]]);
 box.internal.collation.create('TURKISH', 'ICU', 'tr-TR', {strength='primary'});
 box.sql.execute([[INSERT INTO tu VALUES ('Latin Capital Letter I U+0049','I');]])
 box.sql.execute([[INSERT INTO tu VALUES ('Latin Small Letter I U+0069','i');]])
@@ -105,8 +105,8 @@ box.schema.user.drop('tmp')
 
 -- gh-3644 Foreign key update fails with "unicode_ci".
 -- Check that foreign key update doesn't fail with "unicode_ci".
-box.sql.execute('CREATE TABLE t0 (s1 CHAR(5) COLLATE "unicode_ci" UNIQUE, id INT PRIMARY KEY AUTOINCREMENT);')
-box.sql.execute('CREATE TABLE t1 (s1 INT PRIMARY KEY, s0 CHAR(5) COLLATE "unicode_ci" REFERENCES t0(s1));')
+box.sql.execute('CREATE TABLE t0 (s1 VARCHAR(5) COLLATE "unicode_ci" UNIQUE, id INT PRIMARY KEY AUTOINCREMENT);')
+box.sql.execute('CREATE TABLE t1 (s1 INT PRIMARY KEY, s0 VARCHAR(5) COLLATE "unicode_ci" REFERENCES t0(s1));')
 box.sql.execute("INSERT INTO t0(s1) VALUES ('a');")
 box.sql.execute("INSERT INTO t1 VALUES (1,'a');")
 -- Should't fail.
@@ -116,8 +116,8 @@ box.sql.execute("SELECT * FROM t1;")
 box.sql.execute("DROP TABLE t1;")
 box.sql.execute("DROP TABLE t0;")
 -- Check that foreign key update fails with default collation.
-box.sql.execute('CREATE TABLE t0 (s1 CHAR(5) UNIQUE, id INT PRIMARY KEY AUTOINCREMENT);')
-box.sql.execute('CREATE TABLE t1 (s1 INT PRIMARY KEY, s0 CHAR(5) REFERENCES t0(s1));')
+box.sql.execute('CREATE TABLE t0 (s1 VARCHAR(5) UNIQUE, id INT PRIMARY KEY AUTOINCREMENT);')
+box.sql.execute('CREATE TABLE t1 (s1 INT PRIMARY KEY, s0 VARCHAR(5) REFERENCES t0(s1));')
 box.sql.execute("INSERT INTO t0(s1) VALUES ('a');")
 box.sql.execute("INSERT INTO t1 VALUES (1,'a');")
 -- Should fail.
@@ -175,7 +175,7 @@ box.space.T4B:drop()
 
 -- gh-3537 Duplicate key error for an index that is not unique
 -- pk - default, sc - unicode_ci
-box.sql.execute('CREATE TABLE t3 (s1 CHAR(5) PRIMARY KEY);')
+box.sql.execute('CREATE TABLE t3 (s1 VARCHAR(5) PRIMARY KEY);')
 box.sql.execute('CREATE INDEX i3 ON t3 (s1 collate "unicode_ci");')
 box.sql.execute("INSERT INTO t3 VALUES ('a');")
 box.sql.execute("INSERT INTO t3 VALUES ('A');")
@@ -183,7 +183,7 @@ box.sql.execute("SELECT * FROM t3;")
 box.sql.execute("DROP TABLE t3;")
 
 -- pk - binary, sc - unicode
-box.sql.execute('CREATE TABLE t3b (s1 CHAR(5) collate "binary" PRIMARY KEY);')
+box.sql.execute('CREATE TABLE t3b (s1 VARCHAR(5) collate "binary" PRIMARY KEY);')
 box.sql.execute('CREATE INDEX i3b ON t3b (s1 collate "unicode");')
 box.sql.execute("INSERT INTO t3b VALUES ('a');")
 box.sql.execute("INSERT INTO t3b VALUES ('A');")
@@ -191,7 +191,7 @@ box.sql.execute("SELECT * FROM t3b;")
 box.sql.execute("DROP TABLE t3b;")
 
 -- pk - binary, sc - unicode (make dup)
-box.sql.execute('CREATE TABLE t3b (s1 CHAR(5) collate "binary" PRIMARY KEY);')
+box.sql.execute('CREATE TABLE t3b (s1 VARCHAR(5) collate "binary" PRIMARY KEY);')
 box.sql.execute('CREATE INDEX i3b ON t3b (s1 collate "unicode");')
 box.sql.execute("INSERT INTO t3b VALUES ('a');")
 box.sql.execute("INSERT INTO t3b VALUES ('A');")
@@ -200,7 +200,7 @@ box.sql.execute("SELECT * FROM t3b;")
 box.sql.execute("DROP TABLE t3b;")
 
 -- pk - unicode, sc - binary
-box.sql.execute('CREATE TABLE t3c (s1 CHAR(5) collate "unicode" PRIMARY KEY);')
+box.sql.execute('CREATE TABLE t3c (s1 VARCHAR(5) collate "unicode" PRIMARY KEY);')
 box.sql.execute('CREATE INDEX i3c ON t3c (s1 collate "binary");')
 box.sql.execute("INSERT INTO t3c VALUES ('a');")
 box.sql.execute("INSERT INTO t3c VALUES ('A');")
@@ -208,7 +208,7 @@ box.sql.execute("SELECT * FROM t3c;")
 box.sql.execute("DROP TABLE t3c;")
 
 -- pk - unicode, sc - binary (make dup)
-box.sql.execute('CREATE TABLE t3c (s1 CHAR(5) collate "unicode" PRIMARY KEY);')
+box.sql.execute('CREATE TABLE t3c (s1 VARCHAR(5) collate "unicode" PRIMARY KEY);')
 box.sql.execute('CREATE INDEX i3c ON t3c (s1 collate "binary");')
 box.sql.execute("INSERT INTO t3c VALUES ('a');")
 box.sql.execute("INSERT INTO t3c VALUES ('A');")
@@ -217,7 +217,7 @@ box.sql.execute("SELECT * FROM t3c;")
 box.sql.execute("DROP TABLE t3c;")
 
 -- pk - binary, sc - unicode_ci
-box.sql.execute('CREATE TABLE t3d (s1 CHAR(5) collate "binary" PRIMARY KEY);')
+box.sql.execute('CREATE TABLE t3d (s1 VARCHAR(5) collate "binary" PRIMARY KEY);')
 box.sql.execute('CREATE INDEX i3d ON t3d (s1 collate "unicode_ci");')
 box.sql.execute("INSERT INTO t3d VALUES ('a');")
 box.sql.execute("INSERT INTO t3d VALUES ('A');")
@@ -225,7 +225,7 @@ box.sql.execute("SELECT * FROM t3d;")
 box.sql.execute("DROP TABLE t3d;")
 
 -- pk - binary, sc - unicode_ci (make dup)
-box.sql.execute('CREATE TABLE t3d (s1 CHAR(5) collate "binary" PRIMARY KEY);')
+box.sql.execute('CREATE TABLE t3d (s1 VARCHAR(5) collate "binary" PRIMARY KEY);')
 box.sql.execute('CREATE INDEX i3d ON t3d (s1 collate "unicode_ci");')
 box.sql.execute("INSERT INTO t3d VALUES ('a');")
 box.sql.execute("INSERT INTO t3d VALUES ('A');")
@@ -234,7 +234,7 @@ box.sql.execute("SELECT * FROM t3d;")
 box.sql.execute("DROP TABLE t3d;")
 
 -- pk - unicode_ci, sc - binary (should fail)
-box.sql.execute('CREATE TABLE t3e (s1 CHAR(5) collate "unicode_ci" PRIMARY KEY);')
+box.sql.execute('CREATE TABLE t3e (s1 VARCHAR(5) collate "unicode_ci" PRIMARY KEY);')
 box.sql.execute('CREATE INDEX i3e ON t3e (s1 collate "binary");')
 box.sql.execute("INSERT INTO t3e VALUES ('a');")
 box.sql.execute("INSERT INTO t3e VALUES ('A');")
@@ -242,7 +242,7 @@ box.sql.execute("SELECT * FROM t3e;")
 box.sql.execute("DROP TABLE t3e;")
 
 -- pk - unicode, sc - unicode_ci
-box.sql.execute('CREATE TABLE t3f (s1 CHAR(5) collate "unicode" PRIMARY KEY);')
+box.sql.execute('CREATE TABLE t3f (s1 VARCHAR(5) collate "unicode" PRIMARY KEY);')
 box.sql.execute('CREATE INDEX i3f ON t3f (s1 collate "unicode_ci");')
 box.sql.execute("INSERT INTO t3f VALUES ('a');")
 box.sql.execute("INSERT INTO t3f VALUES ('A');")
@@ -250,7 +250,7 @@ box.sql.execute("SELECT * FROM t3f;")
 box.sql.execute("DROP TABLE t3f;")
 
 -- pk - unicode, sc - unicode_ci (make dup)
-box.sql.execute('CREATE TABLE t3f (s1 CHAR(5) collate "unicode" PRIMARY KEY);')
+box.sql.execute('CREATE TABLE t3f (s1 VARCHAR(5) collate "unicode" PRIMARY KEY);')
 box.sql.execute('CREATE INDEX i3f ON t3f (s1 collate "unicode_ci");')
 box.sql.execute("INSERT INTO t3f VALUES ('a');")
 box.sql.execute("INSERT INTO t3f VALUES ('A');")
@@ -259,7 +259,7 @@ box.sql.execute("SELECT * FROM t3f;")
 box.sql.execute("DROP TABLE t3f;")
 
 -- pk - unicode_ci, sc - unicode (should fail)
-box.sql.execute('CREATE TABLE t3g (s1 CHAR(5) collate "unicode_ci" PRIMARY KEY);')
+box.sql.execute('CREATE TABLE t3g (s1 VARCHAR(5) collate "unicode_ci" PRIMARY KEY);')
 box.sql.execute('CREATE INDEX i3g ON t3g (s1 collate "unicode");')
 box.sql.execute("INSERT INTO t3g VALUES ('a');")
 box.sql.execute("INSERT INTO t3g VALUES ('A');")
@@ -267,14 +267,14 @@ box.sql.execute("SELECT * FROM t3g;")
 box.sql.execute("DROP TABLE t3g;")
 
 -- pk - default, sc - multipart
-box.sql.execute('CREATE TABLE qms1 (w CHAR(5) PRIMARY KEY, n CHAR(5), q CHAR(5), s INTEGER);')
+box.sql.execute('CREATE TABLE qms1 (w VARCHAR(5) PRIMARY KEY, n VARCHAR(5), q VARCHAR(5), s INTEGER);')
 box.sql.execute('CREATE INDEX iqms1 ON qms1 (w collate "unicode_ci", n);')
 box.sql.execute("INSERT INTO qms1 VALUES ('www', 'nnn', 'qqq', 1);")
 box.sql.execute("INSERT INTO qms1 VALUES ('WWW', 'nnn', 'qqq', 2);")
 box.sql.execute("SELECT * FROM qms1;")
 box.sql.execute("DROP TABLE qms1;")
 
-box.sql.execute('CREATE TABLE qms2 (w CHAR(5) PRIMARY KEY, n CHAR(5), q CHAR(5), s INTEGER);')
+box.sql.execute('CREATE TABLE qms2 (w VARCHAR(5) PRIMARY KEY, n VARCHAR(5), q VARCHAR(5), s INTEGER);')
 box.sql.execute('CREATE INDEX iqms2 ON qms2 (w collate "unicode", n);')
 box.sql.execute("INSERT INTO qms2 VALUES ('www', 'nnn', 'qqq', 1);")
 box.sql.execute("INSERT INTO qms2 VALUES ('WWW', 'nnn', 'qqq', 2);")
@@ -282,14 +282,14 @@ box.sql.execute("SELECT * FROM qms2;")
 box.sql.execute("DROP TABLE qms2;")
 
 -- pk - multipart, sc overlaps with pk
-box.sql.execute('CREATE TABLE qms3 (w CHAR(5), n CHAR(5), q CHAR(5), s INTEGER, CONSTRAINT pk_qms3 PRIMARY KEY(w, n, q));')
+box.sql.execute('CREATE TABLE qms3 (w VARCHAR(5), n VARCHAR(5), q VARCHAR(5), s INTEGER, CONSTRAINT pk_qms3 PRIMARY KEY(w, n, q));')
 box.sql.execute('CREATE INDEX iqms3 ON qms3 (w collate "unicode_ci", s);')
 box.sql.execute("INSERT INTO qms3 VALUES ('www', 'nnn', 'qqq', 1);")
 box.sql.execute("INSERT INTO qms3 VALUES ('WWW', 'nnn', 'qqq', 2);")
 box.sql.execute("SELECT * FROM qms3;")
 box.sql.execute("DROP TABLE qms3;")
 
-box.sql.execute('CREATE TABLE qms4 (w CHAR(5), n CHAR(5), q CHAR(5), s INTEGER, CONSTRAINT pk_qms4 PRIMARY KEY(w, n, q));')
+box.sql.execute('CREATE TABLE qms4 (w VARCHAR(5), n VARCHAR(5), q VARCHAR(5), s INTEGER, CONSTRAINT pk_qms4 PRIMARY KEY(w, n, q));')
 box.sql.execute('CREATE INDEX iqms4 ON qms4 (w collate "unicode", s);')
 box.sql.execute("INSERT INTO qms4 VALUES ('www', 'nnn', 'qqq', 1);")
 box.sql.execute("INSERT INTO qms4 VALUES ('WWW', 'nnn', 'qqq', 2);")
diff --git a/test/sql/row-count.result b/test/sql/row-count.result
index d6248eb0f8bc7b4e68d7e2ffc1d6421631fe62a3..b75298f720e8609373c17ba0254d1801eeba748f 100644
--- a/test/sql/row-count.result
+++ b/test/sql/row-count.result
@@ -9,7 +9,7 @@ box.sql.execute('pragma sql_default_engine=\''..engine..'\'')
 ...
 -- Test cases concerning row count calculations.
 --
-box.sql.execute("CREATE TABLE t1 (s1 CHAR(10) PRIMARY KEY);")
+box.sql.execute("CREATE TABLE t1 (s1 VARCHAR(10) PRIMARY KEY);")
 ---
 ...
 box.sql.execute("SELECT ROW_COUNT();")
@@ -20,7 +20,7 @@ box.sql.execute("SELECT ROW_COUNT();")
 ---
 - - [0]
 ...
-box.sql.execute("CREATE TABLE t2 (s1 CHAR(10) PRIMARY KEY, s2 CHAR(10) REFERENCES t1 ON DELETE CASCADE);")
+box.sql.execute("CREATE TABLE t2 (s1 VARCHAR(10) PRIMARY KEY, s2 VARCHAR(10) REFERENCES t1 ON DELETE CASCADE);")
 ---
 ...
 box.sql.execute("SELECT ROW_COUNT();")
diff --git a/test/sql/row-count.test.lua b/test/sql/row-count.test.lua
index f10807fff0e7f9efa11a57ecbb41c9cbba7020aa..89476c7a9179e7cf6833b00015ccc55897ac51e8 100644
--- a/test/sql/row-count.test.lua
+++ b/test/sql/row-count.test.lua
@@ -4,10 +4,10 @@ box.sql.execute('pragma sql_default_engine=\''..engine..'\'')
 
 -- Test cases concerning row count calculations.
 --
-box.sql.execute("CREATE TABLE t1 (s1 CHAR(10) PRIMARY KEY);")
+box.sql.execute("CREATE TABLE t1 (s1 VARCHAR(10) PRIMARY KEY);")
 box.sql.execute("SELECT ROW_COUNT();")
 box.sql.execute("SELECT ROW_COUNT();")
-box.sql.execute("CREATE TABLE t2 (s1 CHAR(10) PRIMARY KEY, s2 CHAR(10) REFERENCES t1 ON DELETE CASCADE);")
+box.sql.execute("CREATE TABLE t2 (s1 VARCHAR(10) PRIMARY KEY, s2 VARCHAR(10) REFERENCES t1 ON DELETE CASCADE);")
 box.sql.execute("SELECT ROW_COUNT();")
 box.sql.execute("CREATE TABLE t3 (i1 INT UNIQUE, i2 INT, i3 INT PRIMARY KEY);")
 box.sql.execute("INSERT INTO t3 VALUES (0, 0, 0);")