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);")