You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-07-29 08:21:15 +03:00
MCOL-4726 Wrong result of WHERE char1_col='A'
This commit is contained in:
@ -32,17 +32,17 @@ public:
|
||||
TCharShort(int64_t value)
|
||||
:mValue(value)
|
||||
{ }
|
||||
explicit operator utils::ConstString() const
|
||||
utils::ConstString toConstString(uint32_t width) const
|
||||
{
|
||||
utils::ConstString res = utils::ConstString((const char *) &mValue, 8);
|
||||
utils::ConstString res = utils::ConstString((const char *) &mValue, width);
|
||||
return res.rtrimZero();
|
||||
}
|
||||
static int strnncollsp(const datatypes::Charset &cs, int64_t a, int64_t b)
|
||||
static int strnncollsp(const datatypes::Charset &cs, int64_t a, int64_t b, uint32_t width)
|
||||
{
|
||||
datatypes::TCharShort sa(a);
|
||||
datatypes::TCharShort sb(b);
|
||||
return cs.strnncollsp(static_cast<utils::ConstString>(sa),
|
||||
static_cast<utils::ConstString>(sb));
|
||||
return cs.strnncollsp(sa.toConstString(width),
|
||||
sb.toConstString(width));
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -393,11 +393,11 @@ void LBIDList::UpdateMinMax(T min, T max, int64_t lbid,
|
||||
if (datatypes::isCharType(type.colDataType))
|
||||
{
|
||||
datatypes::Charset cs(const_cast<CalpontSystemCatalog::ColType &>(type).getCharset());
|
||||
if (datatypes::TCharShort::strnncollsp(cs, min, mmp->min) < 0 ||
|
||||
if (datatypes::TCharShort::strnncollsp(cs, min, mmp->min, type.colWidth) < 0 ||
|
||||
mmp->min == numeric_limits<int64_t>::max())
|
||||
mmp->min = min;
|
||||
|
||||
if (datatypes::TCharShort::strnncollsp(cs, max, mmp->max) > 0 ||
|
||||
if (datatypes::TCharShort::strnncollsp(cs, max, mmp->max, type.colWidth) > 0 ||
|
||||
mmp->max == numeric_limits<int64_t>::min())
|
||||
mmp->max = max;
|
||||
}
|
||||
@ -700,8 +700,8 @@ bool LBIDList::checkSingleValue(T min, T max, T value,
|
||||
// MCOL-641 LBIDList::CasualPartitionDataType() returns false if
|
||||
// width > 8 for a character type, so T cannot be int128_t here
|
||||
datatypes::Charset cs(const_cast<execplan::CalpontSystemCatalog::ColType&>(type).getCharset());
|
||||
return datatypes::TCharShort::strnncollsp(cs, value, min) >= 0 &&
|
||||
datatypes::TCharShort::strnncollsp(cs, value, max) <= 0;
|
||||
return datatypes::TCharShort::strnncollsp(cs, value, min, type.colWidth) >= 0 &&
|
||||
datatypes::TCharShort::strnncollsp(cs, value, max, type.colWidth) <= 0;
|
||||
}
|
||||
else if (isUnsigned(type.colDataType))
|
||||
{
|
||||
@ -723,8 +723,8 @@ bool LBIDList::checkRangeOverlap(T min, T max, T tmin, T tmax,
|
||||
// MCOL-641 LBIDList::CasualPartitionDataType() returns false if
|
||||
// width > 8 for a character type, so T cannot be int128_t here
|
||||
datatypes::Charset cs(const_cast<execplan::CalpontSystemCatalog::ColType&>(type).getCharset());
|
||||
return datatypes::TCharShort::strnncollsp(cs, tmin, max) <= 0 &&
|
||||
datatypes::TCharShort::strnncollsp(cs, tmax, min) >= 0;
|
||||
return datatypes::TCharShort::strnncollsp(cs, tmin, max, type.colWidth) <= 0 &&
|
||||
datatypes::TCharShort::strnncollsp(cs, tmax, min, type.colWidth) >= 0;
|
||||
}
|
||||
else if (isUnsigned(type.colDataType))
|
||||
{
|
||||
@ -852,12 +852,12 @@ bool LBIDList::CasualPartitionPredicate(const BRM::EMCasualPartition_t& cpRange,
|
||||
continue;
|
||||
}
|
||||
|
||||
if (bIsChar && 1 < ct.colWidth)
|
||||
if (bIsChar)
|
||||
{
|
||||
datatypes::Charset cs(ct.charsetNumber);
|
||||
utils::ConstString sMin((const char *) &cpRange.loVal, 8);
|
||||
utils::ConstString sMax((const char *) &cpRange.hiVal, 8);
|
||||
utils::ConstString sVal((const char *) &value, 8);
|
||||
utils::ConstString sMin((const char *) &cpRange.loVal, ct.colWidth);
|
||||
utils::ConstString sMax((const char *) &cpRange.hiVal, ct.colWidth);
|
||||
utils::ConstString sVal((const char *) &value, ct.colWidth);
|
||||
scan = compareStr(cs, sMin.rtrimZero(),
|
||||
sMax.rtrimZero(),
|
||||
sVal.rtrimZero(), op, lcf);
|
||||
|
@ -1,4 +1,728 @@
|
||||
SELECT @mysqltest_file;
|
||||
@mysqltest_file
|
||||
ctype_cmp_char1_latin1_swedish_ci
|
||||
SET @database=CONCAT('mcs_', @mysqltest_file);
|
||||
EXECUTE IMMEDIATE CONCAT('DROP DATABASE IF EXISTS ', @database);
|
||||
EXECUTE IMMEDIATE CONCAT('CREATE DATABASE ', @database);
|
||||
CREATE PROCEDURE exec(query TEXT)
|
||||
BEGIN
|
||||
SELECT query AS '';
|
||||
EXECUTE IMMEDIATE query;
|
||||
END;
|
||||
$$
|
||||
CREATE PROCEDURE test01_execval(op VARCHAR(3) CHARACTER SET utf8,
|
||||
val VARCHAR(64) CHARACTER SET utf8)
|
||||
BEGIN
|
||||
DECLARE query TEXT DEFAULT 'SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1=''VAL''';
|
||||
SET query=REPLACE(query,'=',op);
|
||||
SET query=REPLACE(query,'VAL', val);
|
||||
CALL exec(query);
|
||||
END;
|
||||
$$
|
||||
CREATE PROCEDURE test01_populate(len1 INT, len2 INT)
|
||||
BEGIN
|
||||
-- Make sure the table is handled by a proper ENGINE
|
||||
SELECT (SELECT engine FROM information_schema.tables WHERE (table_schema,table_name)=(@database,'t1')) =
|
||||
@@default_storage_engine;
|
||||
FOR i IN len1..len2
|
||||
DO
|
||||
INSERT INTO t1 VALUES (RPAD('a',i)),(RPAD('A',i));
|
||||
-- LATIN SMALL LETTER A WITH TILDE
|
||||
-- LATIN CAPITAL LETTER A WITH TILDE
|
||||
INSERT INTO t1 VALUES (RPAD(_latin1 0xE3,i)),(RPAD(_latin1 0xC3,i));
|
||||
INSERT INTO t1 VALUES (RPAD('b',i)),(RPAD('B',i));
|
||||
END FOR;
|
||||
-- MCOL-4454 "ORDER BY BINARY a" is not like in InnoDB
|
||||
CALL exec('SELECT QUOTE(c1) FROM t1 ORDER BY c1, BINARY(c1) ASC');
|
||||
CALL exec('SELECT QUOTE(c1) FROM t1 ORDER BY c1, BINARY(c1) DESC');
|
||||
END;
|
||||
$$
|
||||
CREATE PROCEDURE test01_field_literal_op(len1 INT,
|
||||
len2 INT,
|
||||
op VARCHAR(3) CHARACTER SET utf8)
|
||||
BEGIN
|
||||
FOR i IN len1..len2
|
||||
DO
|
||||
CALL test01_execval(op,RPAD('a',i));
|
||||
CALL test01_execval(op,RPAD('A',i));
|
||||
CALL test01_execval(op,RPAD(_latin1 0xE3,i)); -- LATIN SMALL LETTER A WITH TILDE
|
||||
CALL test01_execval(op,RPAD(_latin1 0xC3,i)); -- LATIN CAPITAL LETTER A WITH TILDE
|
||||
END FOR;
|
||||
END;
|
||||
$$
|
||||
CREATE PROCEDURE test01_field_literal(len1 INT,
|
||||
len2 INT)
|
||||
BEGIN
|
||||
CALL test01_field_literal_op(len1, len2, '=');
|
||||
CALL test01_field_literal_op(len1, len2, '<=');
|
||||
CALL test01_field_literal_op(len1, len2, '<');
|
||||
CALL test01_field_literal_op(len1, len2, '>');
|
||||
CALL test01_field_literal_op(len1, len2, '>=');
|
||||
CALL test01_field_literal_op(len1, len2, '<>');
|
||||
END;
|
||||
$$
|
||||
CREATE PROCEDURE test01_field_field()
|
||||
BEGIN
|
||||
SELECT QUOTE(t1.c1), QUOTE(t2.c1) FROM t1, t1 t2 WHERE t1.c1=t2.c1 ORDER BY HEX(t1.c1), HEX(t2.c1);
|
||||
END;
|
||||
$$
|
||||
CREATE PROCEDURE test01_distinct()
|
||||
BEGIN
|
||||
DECLARE vrecno INT DEFAULT 1;
|
||||
CALL exec('SELECT GROUP_CONCAT(CONCAT(''['',c1,'']'') ORDER BY BINARY(c1) SEPARATOR '''') FROM t1 GROUP BY c1 ORDER BY c1');
|
||||
CALL exec('SELECT COUNT(DISTINCT c1) FROM t1');
|
||||
CREATE TABLE t2 AS SELECT DISTINCT c1 FROM t1;
|
||||
CALL exec('SELECT COUNT(*) FROM t2');
|
||||
CREATE TABLE t3 AS SELECT t1.c1, CAST(0 AS UNSIGNED) AS distinct_count FROM t1 LIMIT 0;
|
||||
FOR rec IN (SELECT c1 FROM t1)
|
||||
DO
|
||||
INSERT INTO t3 SELECT rec.c1, COUNT(*) FROM t2 WHERE t2.c1=rec.c1;
|
||||
END FOR;
|
||||
CALL exec('SELECT distinct_count, QUOTE(c1) FROM t3 ORDER BY c1, BINARY(c1)');
|
||||
DROP TABLE t3;
|
||||
CREATE TABLE t4 AS SELECT t1.c1, CAST(0 AS UNSIGNED) AS distinct_recno FROM t1 LIMIT 0;
|
||||
FOR rec IN (SELECT c1 FROM t2 ORDER BY c1)
|
||||
DO
|
||||
INSERT INTO t4 SELECT t1.c1, vrecno FROM t1 WHERE t1.c1=rec.c1 ORDER BY BINARY t1.c1;
|
||||
SET vrecno= vrecno+1;
|
||||
END FOR;
|
||||
CALL exec('SELECT distinct_recno, QUOTE(c1) FROM t4 ORDER BY c1, BINARY(c1)');
|
||||
DROP TABLE t4;
|
||||
DROP TABLE t2;
|
||||
END;
|
||||
$$
|
||||
CREATE PROCEDURE test02_same_table_create_table(dtype VARCHAR(128))
|
||||
BEGIN
|
||||
DECLARE tbl TEXT DEFAULT 'CREATE TABLE t1 (c1 TYPE, c2 TYPE)';
|
||||
SET tbl=REPLACE(tbl,'TYPE',dtype);
|
||||
CALL exec(tbl);
|
||||
END;
|
||||
$$
|
||||
CREATE PROCEDURE test02_same_table_populate()
|
||||
BEGIN
|
||||
INSERT INTO t1 VALUES ('a', 'A');
|
||||
INSERT INTO t1 VALUES ('a', 'A ');
|
||||
INSERT INTO t1 VALUES ('a ', 'A');
|
||||
INSERT INTO t1 VALUES ('a ', 'A ');
|
||||
END;
|
||||
$$
|
||||
CREATE PROCEDURE test02_same_table_cmp_field_field_op(op VARCHAR(2))
|
||||
BEGIN
|
||||
DECLARE query TEXT DEFAULT 'SELECT QUOTE(c1), QUOTE(c2) FROM t1 '
|
||||
'WHERE c1=c2 ORDER BY HEX(c1), HEX(c2)';
|
||||
SET query=REPLACE(query,'=',op);
|
||||
CALL exec(query);
|
||||
END;
|
||||
$$
|
||||
CREATE PROCEDURE test02_same_table_cmp_field_field()
|
||||
BEGIN
|
||||
CALL test02_same_table_cmp_field_field_op('=');
|
||||
CALL test02_same_table_cmp_field_field_op('<=');
|
||||
CALL test02_same_table_cmp_field_field_op('<');
|
||||
CALL test02_same_table_cmp_field_field_op('>');
|
||||
CALL test02_same_table_cmp_field_field_op('>=');
|
||||
CALL test02_same_table_cmp_field_field_op('<>');
|
||||
END;
|
||||
$$
|
||||
CREATE PROCEDURE test03(len INT, datatype TEXT)
|
||||
BEGIN
|
||||
CALL exec(REPLACE('CREATE TABLE t1 (c1 DATATYPE, c2 DATATYPE)', 'DATATYPE', datatype));
|
||||
CALL exec(REPLACE('INSERT INTO t1 VALUES (LEFT(''Hellooooooooooooooooooo'',LEN),LEFT(''hellooooooooooooooooooo'',LEN))', 'LEN', len));
|
||||
CALL exec(REPLACE('CREATE TABLE t2 (c1 DATATYPE, c2 DATATYPE)', 'DATATYPE', datatype));
|
||||
CALL exec(REPLACE('INSERT INTO t2 VALUES (LEFT(''Hellooooooooooooooooooo'',LEN),LEFT(''hellooooooooooooooooooo'',LEN))', 'LEN', len));
|
||||
CALL exec(REPLACE('SELECT * FROM t1 WHERE c1=''VAL''', 'VAL', LEFT('Hellooooooooooooooooooo', len)));
|
||||
CALL exec(REPLACE('SELECT * FROM t1 WHERE c1=''VAL''', 'VAL', LEFT('hellooooooooooooooooooo', len)));
|
||||
CALL exec('SELECT * FROM t1 WHERE c1=c2');
|
||||
CALL exec('SELECT * FROM t1, t2 WHERE t1.c1=t2.c1');
|
||||
CALL exec('SELECT * FROM t1, t2 WHERE t1.c1=t2.c2');
|
||||
CALL exec('SELECT * FROM t1, t2 WHERE t1.c2=t2.c1');
|
||||
CALL exec('SELECT * FROM t1, t2 WHERE t1.c2=t2.c2');
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
CREATE PROCEDURE test04_like(len INT, datatype TEXT)
|
||||
BEGIN
|
||||
CALL exec(REPLACE('CREATE TABLE t1 (c1 DATATYPE)', 'DATATYPE', datatype));
|
||||
CALL exec(REPLACE('INSERT INTO t1 VALUES (REPEAT(''a'',LEN))','LEN',len));
|
||||
CALL exec(REPLACE('INSERT INTO t1 VALUES (REPEAT(''A'',LEN))','LEN',len));
|
||||
CALL exec('SELECT * FROM t1 WHERE c1 LIKE ''a%'' ORDER BY BINARY c1');
|
||||
CALL exec('SELECT * FROM t1 WHERE c1 LIKE ''A%'' ORDER BY BINARY c1');
|
||||
CALL exec(REPLACE('SELECT * FROM t1 WHERE c1 LIKE ''VAL%'' ORDER BY BINARY c1','VAL',REPEAT('a',len)));
|
||||
CALL exec(REPLACE('SELECT * FROM t1 WHERE c1 LIKE ''VAL%'' ORDER BY BINARY c1','VAL',REPEAT('A',len)));
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
CREATE PROCEDURE test05_mcol4726(len INT, datatype TEXT)
|
||||
BEGIN
|
||||
DECLARE small_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('a',len);
|
||||
DECLARE cap_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('A',len);
|
||||
DECLARE small_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE3,len);
|
||||
DECLARE cap_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC3,len);
|
||||
DECLARE small_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE4,len);
|
||||
DECLARE cap_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC4,len);
|
||||
DECLARE ins VARCHAR(64) CHARACTER SET utf8 DEFAULT 'INSERT INTO t1 VALUES(IVAL)';
|
||||
DECLARE sel VARCHAR(64) CHARACTER SET utf8 DEFAULT 'SELECT c1 FROM t1 WHERE c1=IVAL ORDER BY BINARY c1';
|
||||
CALL exec(REPLACE('CREATE TABLE t1 (c1 DATATYPE)', 'DATATYPE', datatype));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
SET NAMES utf8;
|
||||
SET @datatype='CHAR(1) CHARACTER SET latin1 COLLATE latin1_swedish_ci';
|
||||
CREATE TABLE t1 (c1 CHAR(1) CHARACTER SET latin1 COLLATE latin1_swedish_ci);
|
||||
CALL test01_populate(1,1);
|
||||
(SELECT engine FROM information_schema.tables WHERE (table_schema,table_name)=(@database,'t1')) =
|
||||
@@default_storage_engine
|
||||
1
|
||||
|
||||
SELECT QUOTE(c1) FROM t1 ORDER BY c1, BINARY(c1) ASC
|
||||
QUOTE(c1)
|
||||
'A'
|
||||
'a'
|
||||
'Ã'
|
||||
'ã'
|
||||
'B'
|
||||
'b'
|
||||
|
||||
SELECT QUOTE(c1) FROM t1 ORDER BY c1, BINARY(c1) DESC
|
||||
QUOTE(c1)
|
||||
'ã'
|
||||
'Ã'
|
||||
'a'
|
||||
'A'
|
||||
'b'
|
||||
'B'
|
||||
CALL test01_field_literal(1,2);
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1='a'
|
||||
HEX(c1) QUOTE(c1)
|
||||
61 'a'
|
||||
41 'A'
|
||||
E3 'ã'
|
||||
C3 'Ã'
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1='A'
|
||||
HEX(c1) QUOTE(c1)
|
||||
61 'a'
|
||||
41 'A'
|
||||
E3 'ã'
|
||||
C3 'Ã'
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1='ã'
|
||||
HEX(c1) QUOTE(c1)
|
||||
61 'a'
|
||||
41 'A'
|
||||
E3 'ã'
|
||||
C3 'Ã'
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1='Ã'
|
||||
HEX(c1) QUOTE(c1)
|
||||
61 'a'
|
||||
41 'A'
|
||||
E3 'ã'
|
||||
C3 'Ã'
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1='a '
|
||||
HEX(c1) QUOTE(c1)
|
||||
61 'a'
|
||||
41 'A'
|
||||
E3 'ã'
|
||||
C3 'Ã'
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1='A '
|
||||
HEX(c1) QUOTE(c1)
|
||||
61 'a'
|
||||
41 'A'
|
||||
E3 'ã'
|
||||
C3 'Ã'
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1='ã '
|
||||
HEX(c1) QUOTE(c1)
|
||||
61 'a'
|
||||
41 'A'
|
||||
E3 'ã'
|
||||
C3 'Ã'
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1='Ã '
|
||||
HEX(c1) QUOTE(c1)
|
||||
61 'a'
|
||||
41 'A'
|
||||
E3 'ã'
|
||||
C3 'Ã'
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1<='a'
|
||||
HEX(c1) QUOTE(c1)
|
||||
61 'a'
|
||||
41 'A'
|
||||
E3 'ã'
|
||||
C3 'Ã'
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1<='A'
|
||||
HEX(c1) QUOTE(c1)
|
||||
61 'a'
|
||||
41 'A'
|
||||
E3 'ã'
|
||||
C3 'Ã'
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1<='ã'
|
||||
HEX(c1) QUOTE(c1)
|
||||
61 'a'
|
||||
41 'A'
|
||||
E3 'ã'
|
||||
C3 'Ã'
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1<='Ã'
|
||||
HEX(c1) QUOTE(c1)
|
||||
61 'a'
|
||||
41 'A'
|
||||
E3 'ã'
|
||||
C3 'Ã'
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1<='a '
|
||||
HEX(c1) QUOTE(c1)
|
||||
61 'a'
|
||||
41 'A'
|
||||
E3 'ã'
|
||||
C3 'Ã'
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1<='A '
|
||||
HEX(c1) QUOTE(c1)
|
||||
61 'a'
|
||||
41 'A'
|
||||
E3 'ã'
|
||||
C3 'Ã'
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1<='ã '
|
||||
HEX(c1) QUOTE(c1)
|
||||
61 'a'
|
||||
41 'A'
|
||||
E3 'ã'
|
||||
C3 'Ã'
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1<='Ã '
|
||||
HEX(c1) QUOTE(c1)
|
||||
61 'a'
|
||||
41 'A'
|
||||
E3 'ã'
|
||||
C3 'Ã'
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1<'a'
|
||||
HEX(c1) QUOTE(c1)
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1<'A'
|
||||
HEX(c1) QUOTE(c1)
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1<'ã'
|
||||
HEX(c1) QUOTE(c1)
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1<'Ã'
|
||||
HEX(c1) QUOTE(c1)
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1<'a '
|
||||
HEX(c1) QUOTE(c1)
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1<'A '
|
||||
HEX(c1) QUOTE(c1)
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1<'ã '
|
||||
HEX(c1) QUOTE(c1)
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1<'Ã '
|
||||
HEX(c1) QUOTE(c1)
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1>'a'
|
||||
HEX(c1) QUOTE(c1)
|
||||
62 'b'
|
||||
42 'B'
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1>'A'
|
||||
HEX(c1) QUOTE(c1)
|
||||
62 'b'
|
||||
42 'B'
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1>'ã'
|
||||
HEX(c1) QUOTE(c1)
|
||||
62 'b'
|
||||
42 'B'
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1>'Ã'
|
||||
HEX(c1) QUOTE(c1)
|
||||
62 'b'
|
||||
42 'B'
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1>'a '
|
||||
HEX(c1) QUOTE(c1)
|
||||
62 'b'
|
||||
42 'B'
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1>'A '
|
||||
HEX(c1) QUOTE(c1)
|
||||
62 'b'
|
||||
42 'B'
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1>'ã '
|
||||
HEX(c1) QUOTE(c1)
|
||||
62 'b'
|
||||
42 'B'
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1>'Ã '
|
||||
HEX(c1) QUOTE(c1)
|
||||
62 'b'
|
||||
42 'B'
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1>='a'
|
||||
HEX(c1) QUOTE(c1)
|
||||
61 'a'
|
||||
41 'A'
|
||||
E3 'ã'
|
||||
C3 'Ã'
|
||||
62 'b'
|
||||
42 'B'
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1>='A'
|
||||
HEX(c1) QUOTE(c1)
|
||||
61 'a'
|
||||
41 'A'
|
||||
E3 'ã'
|
||||
C3 'Ã'
|
||||
62 'b'
|
||||
42 'B'
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1>='ã'
|
||||
HEX(c1) QUOTE(c1)
|
||||
61 'a'
|
||||
41 'A'
|
||||
E3 'ã'
|
||||
C3 'Ã'
|
||||
62 'b'
|
||||
42 'B'
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1>='Ã'
|
||||
HEX(c1) QUOTE(c1)
|
||||
61 'a'
|
||||
41 'A'
|
||||
E3 'ã'
|
||||
C3 'Ã'
|
||||
62 'b'
|
||||
42 'B'
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1>='a '
|
||||
HEX(c1) QUOTE(c1)
|
||||
61 'a'
|
||||
41 'A'
|
||||
E3 'ã'
|
||||
C3 'Ã'
|
||||
62 'b'
|
||||
42 'B'
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1>='A '
|
||||
HEX(c1) QUOTE(c1)
|
||||
61 'a'
|
||||
41 'A'
|
||||
E3 'ã'
|
||||
C3 'Ã'
|
||||
62 'b'
|
||||
42 'B'
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1>='ã '
|
||||
HEX(c1) QUOTE(c1)
|
||||
61 'a'
|
||||
41 'A'
|
||||
E3 'ã'
|
||||
C3 'Ã'
|
||||
62 'b'
|
||||
42 'B'
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1>='Ã '
|
||||
HEX(c1) QUOTE(c1)
|
||||
61 'a'
|
||||
41 'A'
|
||||
E3 'ã'
|
||||
C3 'Ã'
|
||||
62 'b'
|
||||
42 'B'
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1<>'a'
|
||||
HEX(c1) QUOTE(c1)
|
||||
62 'b'
|
||||
42 'B'
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1<>'A'
|
||||
HEX(c1) QUOTE(c1)
|
||||
62 'b'
|
||||
42 'B'
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1<>'ã'
|
||||
HEX(c1) QUOTE(c1)
|
||||
62 'b'
|
||||
42 'B'
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1<>'Ã'
|
||||
HEX(c1) QUOTE(c1)
|
||||
62 'b'
|
||||
42 'B'
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1<>'a '
|
||||
HEX(c1) QUOTE(c1)
|
||||
62 'b'
|
||||
42 'B'
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1<>'A '
|
||||
HEX(c1) QUOTE(c1)
|
||||
62 'b'
|
||||
42 'B'
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1<>'ã '
|
||||
HEX(c1) QUOTE(c1)
|
||||
62 'b'
|
||||
42 'B'
|
||||
|
||||
SELECT HEX(c1), QUOTE(c1) FROM t1 WHERE c1<>'Ã '
|
||||
HEX(c1) QUOTE(c1)
|
||||
62 'b'
|
||||
42 'B'
|
||||
CALL test01_field_field();
|
||||
QUOTE(t1.c1) QUOTE(t2.c1)
|
||||
'A' 'A'
|
||||
'A' 'a'
|
||||
'A' 'Ã'
|
||||
'A' 'ã'
|
||||
'B' 'B'
|
||||
'B' 'b'
|
||||
'a' 'A'
|
||||
'a' 'a'
|
||||
'a' 'Ã'
|
||||
'a' 'ã'
|
||||
'b' 'B'
|
||||
'b' 'b'
|
||||
'Ã' 'A'
|
||||
'Ã' 'a'
|
||||
'Ã' 'Ã'
|
||||
'Ã' 'ã'
|
||||
'ã' 'A'
|
||||
'ã' 'a'
|
||||
'ã' 'Ã'
|
||||
'ã' 'ã'
|
||||
CALL test01_distinct();
|
||||
|
||||
SELECT GROUP_CONCAT(CONCAT('[',c1,']') ORDER BY BINARY(c1) SEPARATOR '') FROM t1 GROUP BY c1 ORDER BY c1
|
||||
GROUP_CONCAT(CONCAT('[',c1,']') ORDER BY BINARY(c1) SEPARATOR '')
|
||||
[A][a][Ã][ã]
|
||||
[B][b]
|
||||
|
||||
SELECT COUNT(DISTINCT c1) FROM t1
|
||||
COUNT(DISTINCT c1)
|
||||
2
|
||||
|
||||
SELECT COUNT(*) FROM t2
|
||||
COUNT(*)
|
||||
2
|
||||
|
||||
SELECT distinct_count, QUOTE(c1) FROM t3 ORDER BY c1, BINARY(c1)
|
||||
distinct_count QUOTE(c1)
|
||||
1 'A'
|
||||
1 'a'
|
||||
1 'Ã'
|
||||
1 'ã'
|
||||
1 'B'
|
||||
1 'b'
|
||||
|
||||
SELECT distinct_recno, QUOTE(c1) FROM t4 ORDER BY c1, BINARY(c1)
|
||||
distinct_recno QUOTE(c1)
|
||||
1 'A'
|
||||
1 'a'
|
||||
1 'Ã'
|
||||
1 'ã'
|
||||
2 'B'
|
||||
2 'b'
|
||||
DROP TABLE t1;
|
||||
CALL test02_same_table_create_table(@datatype);
|
||||
|
||||
CREATE TABLE t1 (c1 CHAR(1) CHARACTER SET latin1 COLLATE latin1_swedish_ci, c2 CHAR(1) CHARACTER SET latin1 COLLATE latin1_swedish_ci)
|
||||
CALL test02_same_table_populate();
|
||||
CALL test02_same_table_cmp_field_field();
|
||||
|
||||
SELECT QUOTE(c1), QUOTE(c2) FROM t1 WHERE c1=c2 ORDER BY HEX(c1), HEX(c2)
|
||||
QUOTE(c1) QUOTE(c2)
|
||||
'a' 'A'
|
||||
'a' 'A'
|
||||
'a' 'A'
|
||||
'a' 'A'
|
||||
|
||||
SELECT QUOTE(c1), QUOTE(c2) FROM t1 WHERE c1<=c2 ORDER BY HEX(c1), HEX(c2)
|
||||
QUOTE(c1) QUOTE(c2)
|
||||
'a' 'A'
|
||||
'a' 'A'
|
||||
'a' 'A'
|
||||
'a' 'A'
|
||||
|
||||
SELECT QUOTE(c1), QUOTE(c2) FROM t1 WHERE c1<c2 ORDER BY HEX(c1), HEX(c2)
|
||||
QUOTE(c1) QUOTE(c2)
|
||||
|
||||
SELECT QUOTE(c1), QUOTE(c2) FROM t1 WHERE c1>c2 ORDER BY HEX(c1), HEX(c2)
|
||||
QUOTE(c1) QUOTE(c2)
|
||||
|
||||
SELECT QUOTE(c1), QUOTE(c2) FROM t1 WHERE c1>=c2 ORDER BY HEX(c1), HEX(c2)
|
||||
QUOTE(c1) QUOTE(c2)
|
||||
'a' 'A'
|
||||
'a' 'A'
|
||||
'a' 'A'
|
||||
'a' 'A'
|
||||
|
||||
SELECT QUOTE(c1), QUOTE(c2) FROM t1 WHERE c1<>c2 ORDER BY HEX(c1), HEX(c2)
|
||||
QUOTE(c1) QUOTE(c2)
|
||||
DROP TABLE t1;
|
||||
CALL test03(1, @datatype);
|
||||
|
||||
CREATE TABLE t1 (c1 CHAR(1) CHARACTER SET latin1 COLLATE latin1_swedish_ci, c2 CHAR(1) CHARACTER SET latin1 COLLATE latin1_swedish_ci)
|
||||
|
||||
INSERT INTO t1 VALUES (LEFT('Hellooooooooooooooooooo',1),LEFT('hellooooooooooooooooooo',1))
|
||||
|
||||
CREATE TABLE t2 (c1 CHAR(1) CHARACTER SET latin1 COLLATE latin1_swedish_ci, c2 CHAR(1) CHARACTER SET latin1 COLLATE latin1_swedish_ci)
|
||||
|
||||
INSERT INTO t2 VALUES (LEFT('Hellooooooooooooooooooo',1),LEFT('hellooooooooooooooooooo',1))
|
||||
|
||||
SELECT * FROM t1 WHERE c1='H'
|
||||
c1 c2
|
||||
H h
|
||||
|
||||
SELECT * FROM t1 WHERE c1='h'
|
||||
c1 c2
|
||||
H h
|
||||
|
||||
SELECT * FROM t1 WHERE c1=c2
|
||||
c1 c2
|
||||
H h
|
||||
|
||||
SELECT * FROM t1, t2 WHERE t1.c1=t2.c1
|
||||
c1 c2 c1 c2
|
||||
H h H h
|
||||
|
||||
SELECT * FROM t1, t2 WHERE t1.c1=t2.c2
|
||||
c1 c2 c1 c2
|
||||
H h H h
|
||||
|
||||
SELECT * FROM t1, t2 WHERE t1.c2=t2.c1
|
||||
c1 c2 c1 c2
|
||||
H h H h
|
||||
|
||||
SELECT * FROM t1, t2 WHERE t1.c2=t2.c2
|
||||
c1 c2 c1 c2
|
||||
H h H h
|
||||
|
||||
DROP TABLE t1
|
||||
CALL test04_like(1, @datatype);
|
||||
|
||||
CREATE TABLE t1 (c1 CHAR(1) CHARACTER SET latin1 COLLATE latin1_swedish_ci)
|
||||
|
||||
INSERT INTO t1 VALUES (REPEAT('a',1))
|
||||
|
||||
INSERT INTO t1 VALUES (REPEAT('A',1))
|
||||
|
||||
SELECT * FROM t1 WHERE c1 LIKE 'a%' ORDER BY BINARY c1
|
||||
c1
|
||||
A
|
||||
a
|
||||
|
||||
SELECT * FROM t1 WHERE c1 LIKE 'A%' ORDER BY BINARY c1
|
||||
c1
|
||||
A
|
||||
a
|
||||
|
||||
SELECT * FROM t1 WHERE c1 LIKE 'a%' ORDER BY BINARY c1
|
||||
c1
|
||||
A
|
||||
a
|
||||
|
||||
SELECT * FROM t1 WHERE c1 LIKE 'A%' ORDER BY BINARY c1
|
||||
c1
|
||||
A
|
||||
a
|
||||
|
||||
DROP TABLE t1
|
||||
CALL test05_mcol4726(1, @datatype);
|
||||
|
||||
CREATE TABLE t1 (c1 CHAR(1) CHARACTER SET latin1 COLLATE latin1_swedish_ci)
|
||||
|
||||
INSERT INTO t1 VALUES('a')
|
||||
|
||||
INSERT INTO t1 VALUES('A')
|
||||
|
||||
INSERT INTO t1 VALUES('ã')
|
||||
|
||||
INSERT INTO t1 VALUES('Ã')
|
||||
|
||||
INSERT INTO t1 VALUES('ä')
|
||||
|
||||
INSERT INTO t1 VALUES('Ä')
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='a' ORDER BY BINARY c1
|
||||
c1
|
||||
A
|
||||
a
|
||||
Ã
|
||||
ã
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='A' ORDER BY BINARY c1
|
||||
c1
|
||||
A
|
||||
a
|
||||
Ã
|
||||
ã
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ã' ORDER BY BINARY c1
|
||||
c1
|
||||
A
|
||||
a
|
||||
Ã
|
||||
ã
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='Ã' ORDER BY BINARY c1
|
||||
c1
|
||||
A
|
||||
a
|
||||
Ã
|
||||
ã
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ä' ORDER BY BINARY c1
|
||||
c1
|
||||
Ä
|
||||
ä
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='Ä' ORDER BY BINARY c1
|
||||
c1
|
||||
Ä
|
||||
ä
|
||||
|
||||
DROP TABLE t1
|
||||
DROP PROCEDURE exec;
|
||||
DROP PROCEDURE test01_execval;
|
||||
DROP PROCEDURE test01_populate;
|
||||
DROP PROCEDURE test01_field_literal_op;
|
||||
DROP PROCEDURE test01_field_literal;
|
||||
DROP PROCEDURE test01_field_field;
|
||||
DROP PROCEDURE test01_distinct;
|
||||
DROP PROCEDURE test02_same_table_create_table;
|
||||
DROP PROCEDURE test02_same_table_populate;
|
||||
DROP PROCEDURE test02_same_table_cmp_field_field_op;
|
||||
DROP PROCEDURE test02_same_table_cmp_field_field;
|
||||
DROP PROCEDURE test03;
|
||||
DROP PROCEDURE test04_like;
|
||||
DROP PROCEDURE test05_mcol4726;
|
||||
EXECUTE IMMEDIATE CONCAT('DROP DATABASE ', @database);
|
||||
USE test;
|
||||
SET @@default_storage_engine=DEFAULT;
|
||||
#
|
||||
# MCOL-4721 CHAR(1) is not collation-aware for GROUP/DISTINCT
|
||||
#
|
||||
@ -20,3 +744,13 @@ c1
|
||||
a
|
||||
ä
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# MCOL-4726 Wrong result of WHERE char1_col='A'
|
||||
#
|
||||
CREATE TABLE t1 (a CHAR(1) CHARACTER SET latin1);
|
||||
INSERT INTO t1 VALUES ('a'),('Ã');
|
||||
SELECT * FROM t1 WHERE a='A';
|
||||
a
|
||||
a
|
||||
Ã
|
||||
DROP TABLE t1;
|
||||
|
@ -152,6 +152,32 @@ CALL exec(REPLACE('SELECT * FROM t1 WHERE c1 LIKE ''VAL%'' ORDER BY BINARY c1','
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
CREATE PROCEDURE test05_mcol4726(len INT, datatype TEXT)
|
||||
BEGIN
|
||||
DECLARE small_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('a',len);
|
||||
DECLARE cap_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('A',len);
|
||||
DECLARE small_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE3,len);
|
||||
DECLARE cap_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC3,len);
|
||||
DECLARE small_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE4,len);
|
||||
DECLARE cap_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC4,len);
|
||||
DECLARE ins VARCHAR(64) CHARACTER SET utf8 DEFAULT 'INSERT INTO t1 VALUES(IVAL)';
|
||||
DECLARE sel VARCHAR(64) CHARACTER SET utf8 DEFAULT 'SELECT c1 FROM t1 WHERE c1=IVAL ORDER BY BINARY c1';
|
||||
CALL exec(REPLACE('CREATE TABLE t1 (c1 DATATYPE)', 'DATATYPE', datatype));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
SET NAMES utf8;
|
||||
SET @datatype='CHAR(4) CHARACTER SET latin1 COLLATE latin1_swedish_ci';
|
||||
CREATE TABLE t1 (c1 CHAR(4) CHARACTER SET latin1 COLLATE latin1_swedish_ci);
|
||||
@ -1696,6 +1722,61 @@ c1
|
||||
AAAA
|
||||
aaaa
|
||||
|
||||
DROP TABLE t1
|
||||
CALL test05_mcol4726(4, @datatype);
|
||||
|
||||
CREATE TABLE t1 (c1 CHAR(4) CHARACTER SET latin1 COLLATE latin1_swedish_ci)
|
||||
|
||||
INSERT INTO t1 VALUES('aaaa')
|
||||
|
||||
INSERT INTO t1 VALUES('AAAA')
|
||||
|
||||
INSERT INTO t1 VALUES('ãããã')
|
||||
|
||||
INSERT INTO t1 VALUES('ÃÃÃÃ')
|
||||
|
||||
INSERT INTO t1 VALUES('ääää')
|
||||
|
||||
INSERT INTO t1 VALUES('ÄÄÄÄ')
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='aaaa' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAA
|
||||
aaaa
|
||||
ÃÃÃÃ
|
||||
ãããã
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='AAAA' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAA
|
||||
aaaa
|
||||
ÃÃÃÃ
|
||||
ãããã
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ãããã' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAA
|
||||
aaaa
|
||||
ÃÃÃÃ
|
||||
ãããã
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ÃÃÃÃ' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAA
|
||||
aaaa
|
||||
ÃÃÃÃ
|
||||
ãããã
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ääää' ORDER BY BINARY c1
|
||||
c1
|
||||
ÄÄÄÄ
|
||||
ääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ÄÄÄÄ' ORDER BY BINARY c1
|
||||
c1
|
||||
ÄÄÄÄ
|
||||
ääää
|
||||
|
||||
DROP TABLE t1
|
||||
DROP PROCEDURE exec;
|
||||
DROP PROCEDURE test01_execval;
|
||||
@ -1710,6 +1791,7 @@ DROP PROCEDURE test02_same_table_cmp_field_field_op;
|
||||
DROP PROCEDURE test02_same_table_cmp_field_field;
|
||||
DROP PROCEDURE test03;
|
||||
DROP PROCEDURE test04_like;
|
||||
DROP PROCEDURE test05_mcol4726;
|
||||
EXECUTE IMMEDIATE CONCAT('DROP DATABASE ', @database);
|
||||
USE test;
|
||||
SET @@default_storage_engine=DEFAULT;
|
||||
|
@ -152,6 +152,32 @@ CALL exec(REPLACE('SELECT * FROM t1 WHERE c1 LIKE ''VAL%'' ORDER BY BINARY c1','
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
CREATE PROCEDURE test05_mcol4726(len INT, datatype TEXT)
|
||||
BEGIN
|
||||
DECLARE small_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('a',len);
|
||||
DECLARE cap_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('A',len);
|
||||
DECLARE small_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE3,len);
|
||||
DECLARE cap_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC3,len);
|
||||
DECLARE small_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE4,len);
|
||||
DECLARE cap_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC4,len);
|
||||
DECLARE ins VARCHAR(64) CHARACTER SET utf8 DEFAULT 'INSERT INTO t1 VALUES(IVAL)';
|
||||
DECLARE sel VARCHAR(64) CHARACTER SET utf8 DEFAULT 'SELECT c1 FROM t1 WHERE c1=IVAL ORDER BY BINARY c1';
|
||||
CALL exec(REPLACE('CREATE TABLE t1 (c1 DATATYPE)', 'DATATYPE', datatype));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
SET NAMES utf8;
|
||||
SET @datatype='CHAR(5) CHARACTER SET latin1 COLLATE latin1_swedish_ci';
|
||||
CREATE TABLE t1 (c1 CHAR(5) CHARACTER SET latin1 COLLATE latin1_swedish_ci);
|
||||
@ -1984,6 +2010,61 @@ c1
|
||||
AAAAA
|
||||
aaaaa
|
||||
|
||||
DROP TABLE t1
|
||||
CALL test05_mcol4726(5, @datatype);
|
||||
|
||||
CREATE TABLE t1 (c1 CHAR(5) CHARACTER SET latin1 COLLATE latin1_swedish_ci)
|
||||
|
||||
INSERT INTO t1 VALUES('aaaaa')
|
||||
|
||||
INSERT INTO t1 VALUES('AAAAA')
|
||||
|
||||
INSERT INTO t1 VALUES('ããããã')
|
||||
|
||||
INSERT INTO t1 VALUES('ÃÃÃÃÃ')
|
||||
|
||||
INSERT INTO t1 VALUES('äääää')
|
||||
|
||||
INSERT INTO t1 VALUES('ÄÄÄÄÄ')
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='aaaaa' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAAA
|
||||
aaaaa
|
||||
ÃÃÃÃÃ
|
||||
ããããã
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='AAAAA' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAAA
|
||||
aaaaa
|
||||
ÃÃÃÃÃ
|
||||
ããããã
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ããããã' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAAA
|
||||
aaaaa
|
||||
ÃÃÃÃÃ
|
||||
ããããã
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ÃÃÃÃÃ' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAAA
|
||||
aaaaa
|
||||
ÃÃÃÃÃ
|
||||
ããããã
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='äääää' ORDER BY BINARY c1
|
||||
c1
|
||||
ÄÄÄÄÄ
|
||||
äääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ÄÄÄÄÄ' ORDER BY BINARY c1
|
||||
c1
|
||||
ÄÄÄÄÄ
|
||||
äääää
|
||||
|
||||
DROP TABLE t1
|
||||
DROP PROCEDURE exec;
|
||||
DROP PROCEDURE test01_execval;
|
||||
@ -1998,6 +2079,7 @@ DROP PROCEDURE test02_same_table_cmp_field_field_op;
|
||||
DROP PROCEDURE test02_same_table_cmp_field_field;
|
||||
DROP PROCEDURE test03;
|
||||
DROP PROCEDURE test04_like;
|
||||
DROP PROCEDURE test05_mcol4726;
|
||||
EXECUTE IMMEDIATE CONCAT('DROP DATABASE ', @database);
|
||||
USE test;
|
||||
SET @@default_storage_engine=DEFAULT;
|
||||
|
@ -152,6 +152,32 @@ CALL exec(REPLACE('SELECT * FROM t1 WHERE c1 LIKE ''VAL%'' ORDER BY BINARY c1','
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
CREATE PROCEDURE test05_mcol4726(len INT, datatype TEXT)
|
||||
BEGIN
|
||||
DECLARE small_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('a',len);
|
||||
DECLARE cap_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('A',len);
|
||||
DECLARE small_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE3,len);
|
||||
DECLARE cap_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC3,len);
|
||||
DECLARE small_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE4,len);
|
||||
DECLARE cap_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC4,len);
|
||||
DECLARE ins VARCHAR(64) CHARACTER SET utf8 DEFAULT 'INSERT INTO t1 VALUES(IVAL)';
|
||||
DECLARE sel VARCHAR(64) CHARACTER SET utf8 DEFAULT 'SELECT c1 FROM t1 WHERE c1=IVAL ORDER BY BINARY c1';
|
||||
CALL exec(REPLACE('CREATE TABLE t1 (c1 DATATYPE)', 'DATATYPE', datatype));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
SET NAMES utf8;
|
||||
SET @datatype='VARCHAR(32) CHARACTER SET latin1 COLLATE latin1_bin';
|
||||
CREATE TABLE t1 (c1 VARCHAR(32) CHARACTER SET latin1 COLLATE latin1_bin);
|
||||
@ -1566,6 +1592,47 @@ SELECT * FROM t1 WHERE c1 LIKE 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%' ORDER BY BINA
|
||||
c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
|
||||
DROP TABLE t1
|
||||
CALL test05_mcol4726(32, @datatype);
|
||||
|
||||
CREATE TABLE t1 (c1 VARCHAR(32) CHARACTER SET latin1 COLLATE latin1_bin)
|
||||
|
||||
INSERT INTO t1 VALUES('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')
|
||||
|
||||
INSERT INTO t1 VALUES('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA')
|
||||
|
||||
INSERT INTO t1 VALUES('ãããããããããããããããããããããããããããããããã')
|
||||
|
||||
INSERT INTO t1 VALUES('ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ')
|
||||
|
||||
INSERT INTO t1 VALUES('ääääääääääääääääääääääääääääääää')
|
||||
|
||||
INSERT INTO t1 VALUES('ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ')
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' ORDER BY BINARY c1
|
||||
c1
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ãããããããããããããããããããããããããããããããã' ORDER BY BINARY c1
|
||||
c1
|
||||
ãããããããããããããããããããããããããããããããã
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ' ORDER BY BINARY c1
|
||||
c1
|
||||
ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ääääääääääääääääääääääääääääääää' ORDER BY BINARY c1
|
||||
c1
|
||||
ääääääääääääääääääääääääääääääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ' ORDER BY BINARY c1
|
||||
c1
|
||||
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
|
||||
DROP TABLE t1
|
||||
DROP PROCEDURE exec;
|
||||
DROP PROCEDURE test01_execval;
|
||||
@ -1580,6 +1647,7 @@ DROP PROCEDURE test02_same_table_cmp_field_field_op;
|
||||
DROP PROCEDURE test02_same_table_cmp_field_field;
|
||||
DROP PROCEDURE test03;
|
||||
DROP PROCEDURE test04_like;
|
||||
DROP PROCEDURE test05_mcol4726;
|
||||
EXECUTE IMMEDIATE CONCAT('DROP DATABASE ', @database);
|
||||
USE test;
|
||||
SET @@default_storage_engine=DEFAULT;
|
||||
|
@ -152,6 +152,32 @@ CALL exec(REPLACE('SELECT * FROM t1 WHERE c1 LIKE ''VAL%'' ORDER BY BINARY c1','
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
CREATE PROCEDURE test05_mcol4726(len INT, datatype TEXT)
|
||||
BEGIN
|
||||
DECLARE small_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('a',len);
|
||||
DECLARE cap_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('A',len);
|
||||
DECLARE small_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE3,len);
|
||||
DECLARE cap_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC3,len);
|
||||
DECLARE small_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE4,len);
|
||||
DECLARE cap_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC4,len);
|
||||
DECLARE ins VARCHAR(64) CHARACTER SET utf8 DEFAULT 'INSERT INTO t1 VALUES(IVAL)';
|
||||
DECLARE sel VARCHAR(64) CHARACTER SET utf8 DEFAULT 'SELECT c1 FROM t1 WHERE c1=IVAL ORDER BY BINARY c1';
|
||||
CALL exec(REPLACE('CREATE TABLE t1 (c1 DATATYPE)', 'DATATYPE', datatype));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
SET NAMES utf8;
|
||||
SET @datatype='VARCHAR(32) CHARACTER SET latin1 COLLATE latin1_nopad_bin';
|
||||
CREATE TABLE t1 (c1 VARCHAR(32) CHARACTER SET latin1 COLLATE latin1_nopad_bin);
|
||||
@ -1542,6 +1568,47 @@ SELECT * FROM t1 WHERE c1 LIKE 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%' ORDER BY BINA
|
||||
c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
|
||||
DROP TABLE t1
|
||||
CALL test05_mcol4726(32, @datatype);
|
||||
|
||||
CREATE TABLE t1 (c1 VARCHAR(32) CHARACTER SET latin1 COLLATE latin1_nopad_bin)
|
||||
|
||||
INSERT INTO t1 VALUES('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')
|
||||
|
||||
INSERT INTO t1 VALUES('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA')
|
||||
|
||||
INSERT INTO t1 VALUES('ãããããããããããããããããããããããããããããããã')
|
||||
|
||||
INSERT INTO t1 VALUES('ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ')
|
||||
|
||||
INSERT INTO t1 VALUES('ääääääääääääääääääääääääääääääää')
|
||||
|
||||
INSERT INTO t1 VALUES('ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ')
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' ORDER BY BINARY c1
|
||||
c1
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ãããããããããããããããããããããããããããããããã' ORDER BY BINARY c1
|
||||
c1
|
||||
ãããããããããããããããããããããããããããããããã
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ' ORDER BY BINARY c1
|
||||
c1
|
||||
ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ääääääääääääääääääääääääääääääää' ORDER BY BINARY c1
|
||||
c1
|
||||
ääääääääääääääääääääääääääääääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ' ORDER BY BINARY c1
|
||||
c1
|
||||
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
|
||||
DROP TABLE t1
|
||||
DROP PROCEDURE exec;
|
||||
DROP PROCEDURE test01_execval;
|
||||
@ -1556,6 +1623,7 @@ DROP PROCEDURE test02_same_table_cmp_field_field_op;
|
||||
DROP PROCEDURE test02_same_table_cmp_field_field;
|
||||
DROP PROCEDURE test03;
|
||||
DROP PROCEDURE test04_like;
|
||||
DROP PROCEDURE test05_mcol4726;
|
||||
EXECUTE IMMEDIATE CONCAT('DROP DATABASE ', @database);
|
||||
USE test;
|
||||
SET @@default_storage_engine=DEFAULT;
|
||||
|
@ -152,6 +152,32 @@ CALL exec(REPLACE('SELECT * FROM t1 WHERE c1 LIKE ''VAL%'' ORDER BY BINARY c1','
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
CREATE PROCEDURE test05_mcol4726(len INT, datatype TEXT)
|
||||
BEGIN
|
||||
DECLARE small_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('a',len);
|
||||
DECLARE cap_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('A',len);
|
||||
DECLARE small_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE3,len);
|
||||
DECLARE cap_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC3,len);
|
||||
DECLARE small_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE4,len);
|
||||
DECLARE cap_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC4,len);
|
||||
DECLARE ins VARCHAR(64) CHARACTER SET utf8 DEFAULT 'INSERT INTO t1 VALUES(IVAL)';
|
||||
DECLARE sel VARCHAR(64) CHARACTER SET utf8 DEFAULT 'SELECT c1 FROM t1 WHERE c1=IVAL ORDER BY BINARY c1';
|
||||
CALL exec(REPLACE('CREATE TABLE t1 (c1 DATATYPE)', 'DATATYPE', datatype));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
SET NAMES utf8;
|
||||
SET @datatype='VARCHAR(32) CHARACTER SET latin1 COLLATE latin1_swedish_ci';
|
||||
CREATE TABLE t1 (c1 VARCHAR(32) CHARACTER SET latin1 COLLATE latin1_swedish_ci);
|
||||
@ -1696,6 +1722,61 @@ c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
|
||||
DROP TABLE t1
|
||||
CALL test05_mcol4726(32, @datatype);
|
||||
|
||||
CREATE TABLE t1 (c1 VARCHAR(32) CHARACTER SET latin1 COLLATE latin1_swedish_ci)
|
||||
|
||||
INSERT INTO t1 VALUES('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')
|
||||
|
||||
INSERT INTO t1 VALUES('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA')
|
||||
|
||||
INSERT INTO t1 VALUES('ãããããããããããããããããããããããããããããããã')
|
||||
|
||||
INSERT INTO t1 VALUES('ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ')
|
||||
|
||||
INSERT INTO t1 VALUES('ääääääääääääääääääääääääääääääää')
|
||||
|
||||
INSERT INTO t1 VALUES('ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ')
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ
|
||||
ãããããããããããããããããããããããããããããããã
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ
|
||||
ãããããããããããããããããããããããããããããããã
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ãããããããããããããããããããããããããããããããã' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ
|
||||
ãããããããããããããããããããããããããããããããã
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ
|
||||
ãããããããããããããããããããããããããããããããã
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ääääääääääääääääääääääääääääääää' ORDER BY BINARY c1
|
||||
c1
|
||||
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
ääääääääääääääääääääääääääääääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ' ORDER BY BINARY c1
|
||||
c1
|
||||
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
ääääääääääääääääääääääääääääääää
|
||||
|
||||
DROP TABLE t1
|
||||
DROP PROCEDURE exec;
|
||||
DROP PROCEDURE test01_execval;
|
||||
@ -1710,6 +1791,7 @@ DROP PROCEDURE test02_same_table_cmp_field_field_op;
|
||||
DROP PROCEDURE test02_same_table_cmp_field_field;
|
||||
DROP PROCEDURE test03;
|
||||
DROP PROCEDURE test04_like;
|
||||
DROP PROCEDURE test05_mcol4726;
|
||||
EXECUTE IMMEDIATE CONCAT('DROP DATABASE ', @database);
|
||||
USE test;
|
||||
SET @@default_storage_engine=DEFAULT;
|
||||
|
@ -152,6 +152,32 @@ CALL exec(REPLACE('SELECT * FROM t1 WHERE c1 LIKE ''VAL%'' ORDER BY BINARY c1','
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
CREATE PROCEDURE test05_mcol4726(len INT, datatype TEXT)
|
||||
BEGIN
|
||||
DECLARE small_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('a',len);
|
||||
DECLARE cap_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('A',len);
|
||||
DECLARE small_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE3,len);
|
||||
DECLARE cap_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC3,len);
|
||||
DECLARE small_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE4,len);
|
||||
DECLARE cap_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC4,len);
|
||||
DECLARE ins VARCHAR(64) CHARACTER SET utf8 DEFAULT 'INSERT INTO t1 VALUES(IVAL)';
|
||||
DECLARE sel VARCHAR(64) CHARACTER SET utf8 DEFAULT 'SELECT c1 FROM t1 WHERE c1=IVAL ORDER BY BINARY c1';
|
||||
CALL exec(REPLACE('CREATE TABLE t1 (c1 DATATYPE)', 'DATATYPE', datatype));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
SET NAMES utf8;
|
||||
SET @datatype='VARCHAR(32) CHARACTER SET latin1 COLLATE latin1_swedish_nopad_ci';
|
||||
CREATE TABLE t1 (c1 VARCHAR(32) CHARACTER SET latin1 COLLATE latin1_swedish_nopad_ci);
|
||||
@ -1580,6 +1606,61 @@ c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
|
||||
DROP TABLE t1
|
||||
CALL test05_mcol4726(32, @datatype);
|
||||
|
||||
CREATE TABLE t1 (c1 VARCHAR(32) CHARACTER SET latin1 COLLATE latin1_swedish_nopad_ci)
|
||||
|
||||
INSERT INTO t1 VALUES('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')
|
||||
|
||||
INSERT INTO t1 VALUES('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA')
|
||||
|
||||
INSERT INTO t1 VALUES('ãããããããããããããããããããããããããããããããã')
|
||||
|
||||
INSERT INTO t1 VALUES('ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ')
|
||||
|
||||
INSERT INTO t1 VALUES('ääääääääääääääääääääääääääääääää')
|
||||
|
||||
INSERT INTO t1 VALUES('ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ')
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ
|
||||
ãããããããããããããããããããããããããããããããã
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ
|
||||
ãããããããããããããããããããããããããããããããã
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ãããããããããããããããããããããããããããããããã' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ
|
||||
ãããããããããããããããããããããããããããããããã
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ
|
||||
ãããããããããããããããããããããããããããããããã
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ääääääääääääääääääääääääääääääää' ORDER BY BINARY c1
|
||||
c1
|
||||
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
ääääääääääääääääääääääääääääääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ' ORDER BY BINARY c1
|
||||
c1
|
||||
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
ääääääääääääääääääääääääääääääää
|
||||
|
||||
DROP TABLE t1
|
||||
DROP PROCEDURE exec;
|
||||
DROP PROCEDURE test01_execval;
|
||||
@ -1594,6 +1675,7 @@ DROP PROCEDURE test02_same_table_cmp_field_field_op;
|
||||
DROP PROCEDURE test02_same_table_cmp_field_field;
|
||||
DROP PROCEDURE test03;
|
||||
DROP PROCEDURE test04_like;
|
||||
DROP PROCEDURE test05_mcol4726;
|
||||
EXECUTE IMMEDIATE CONCAT('DROP DATABASE ', @database);
|
||||
USE test;
|
||||
SET @@default_storage_engine=DEFAULT;
|
||||
|
@ -152,6 +152,32 @@ CALL exec(REPLACE('SELECT * FROM t1 WHERE c1 LIKE ''VAL%'' ORDER BY BINARY c1','
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
CREATE PROCEDURE test05_mcol4726(len INT, datatype TEXT)
|
||||
BEGIN
|
||||
DECLARE small_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('a',len);
|
||||
DECLARE cap_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('A',len);
|
||||
DECLARE small_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE3,len);
|
||||
DECLARE cap_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC3,len);
|
||||
DECLARE small_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE4,len);
|
||||
DECLARE cap_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC4,len);
|
||||
DECLARE ins VARCHAR(64) CHARACTER SET utf8 DEFAULT 'INSERT INTO t1 VALUES(IVAL)';
|
||||
DECLARE sel VARCHAR(64) CHARACTER SET utf8 DEFAULT 'SELECT c1 FROM t1 WHERE c1=IVAL ORDER BY BINARY c1';
|
||||
CALL exec(REPLACE('CREATE TABLE t1 (c1 DATATYPE)', 'DATATYPE', datatype));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
SET NAMES utf8;
|
||||
SET @datatype='VARCHAR(32) CHARACTER SET utf8 COLLATE utf8_bin';
|
||||
CREATE TABLE t1 (c1 VARCHAR(32) CHARACTER SET utf8 COLLATE utf8_bin);
|
||||
@ -1566,6 +1592,47 @@ SELECT * FROM t1 WHERE c1 LIKE 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%' ORDER BY BINA
|
||||
c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
|
||||
DROP TABLE t1
|
||||
CALL test05_mcol4726(32, @datatype);
|
||||
|
||||
CREATE TABLE t1 (c1 VARCHAR(32) CHARACTER SET utf8 COLLATE utf8_bin)
|
||||
|
||||
INSERT INTO t1 VALUES('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')
|
||||
|
||||
INSERT INTO t1 VALUES('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA')
|
||||
|
||||
INSERT INTO t1 VALUES('ãããããããããããããããããããããããããããããããã')
|
||||
|
||||
INSERT INTO t1 VALUES('ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ')
|
||||
|
||||
INSERT INTO t1 VALUES('ääääääääääääääääääääääääääääääää')
|
||||
|
||||
INSERT INTO t1 VALUES('ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ')
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' ORDER BY BINARY c1
|
||||
c1
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ãããããããããããããããããããããããããããããããã' ORDER BY BINARY c1
|
||||
c1
|
||||
ãããããããããããããããããããããããããããããããã
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ' ORDER BY BINARY c1
|
||||
c1
|
||||
ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ääääääääääääääääääääääääääääääää' ORDER BY BINARY c1
|
||||
c1
|
||||
ääääääääääääääääääääääääääääääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ' ORDER BY BINARY c1
|
||||
c1
|
||||
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
|
||||
DROP TABLE t1
|
||||
DROP PROCEDURE exec;
|
||||
DROP PROCEDURE test01_execval;
|
||||
@ -1580,6 +1647,7 @@ DROP PROCEDURE test02_same_table_cmp_field_field_op;
|
||||
DROP PROCEDURE test02_same_table_cmp_field_field;
|
||||
DROP PROCEDURE test03;
|
||||
DROP PROCEDURE test04_like;
|
||||
DROP PROCEDURE test05_mcol4726;
|
||||
EXECUTE IMMEDIATE CONCAT('DROP DATABASE ', @database);
|
||||
USE test;
|
||||
SET @@default_storage_engine=DEFAULT;
|
||||
|
@ -152,6 +152,32 @@ CALL exec(REPLACE('SELECT * FROM t1 WHERE c1 LIKE ''VAL%'' ORDER BY BINARY c1','
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
CREATE PROCEDURE test05_mcol4726(len INT, datatype TEXT)
|
||||
BEGIN
|
||||
DECLARE small_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('a',len);
|
||||
DECLARE cap_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('A',len);
|
||||
DECLARE small_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE3,len);
|
||||
DECLARE cap_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC3,len);
|
||||
DECLARE small_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE4,len);
|
||||
DECLARE cap_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC4,len);
|
||||
DECLARE ins VARCHAR(64) CHARACTER SET utf8 DEFAULT 'INSERT INTO t1 VALUES(IVAL)';
|
||||
DECLARE sel VARCHAR(64) CHARACTER SET utf8 DEFAULT 'SELECT c1 FROM t1 WHERE c1=IVAL ORDER BY BINARY c1';
|
||||
CALL exec(REPLACE('CREATE TABLE t1 (c1 DATATYPE)', 'DATATYPE', datatype));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
SET NAMES utf8;
|
||||
SET @datatype='VARCHAR(32) CHARACTER SET utf8 COLLATE utf8_general_ci';
|
||||
CREATE TABLE t1 (c1 VARCHAR(32) CHARACTER SET utf8 COLLATE utf8_general_ci);
|
||||
@ -1696,6 +1722,77 @@ c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
|
||||
DROP TABLE t1
|
||||
CALL test05_mcol4726(32, @datatype);
|
||||
|
||||
CREATE TABLE t1 (c1 VARCHAR(32) CHARACTER SET utf8 COLLATE utf8_general_ci)
|
||||
|
||||
INSERT INTO t1 VALUES('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')
|
||||
|
||||
INSERT INTO t1 VALUES('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA')
|
||||
|
||||
INSERT INTO t1 VALUES('ãããããããããããããããããããããããããããããããã')
|
||||
|
||||
INSERT INTO t1 VALUES('ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ')
|
||||
|
||||
INSERT INTO t1 VALUES('ääääääääääääääääääääääääääääääää')
|
||||
|
||||
INSERT INTO t1 VALUES('ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ')
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ
|
||||
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
ãããããããããããããããããããããããããããããããã
|
||||
ääääääääääääääääääääääääääääääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ
|
||||
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
ãããããããããããããããããããããããããããããããã
|
||||
ääääääääääääääääääääääääääääääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ãããããããããããããããããããããããããããããããã' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ
|
||||
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
ãããããããããããããããããããããããããããããããã
|
||||
ääääääääääääääääääääääääääääääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ
|
||||
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
ãããããããããããããããããããããããããããããããã
|
||||
ääääääääääääääääääääääääääääääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ääääääääääääääääääääääääääääääää' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ
|
||||
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
ãããããããããããããããããããããããããããããããã
|
||||
ääääääääääääääääääääääääääääääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ
|
||||
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
ãããããããããããããããããããããããããããããããã
|
||||
ääääääääääääääääääääääääääääääää
|
||||
|
||||
DROP TABLE t1
|
||||
DROP PROCEDURE exec;
|
||||
DROP PROCEDURE test01_execval;
|
||||
@ -1710,6 +1807,7 @@ DROP PROCEDURE test02_same_table_cmp_field_field_op;
|
||||
DROP PROCEDURE test02_same_table_cmp_field_field;
|
||||
DROP PROCEDURE test03;
|
||||
DROP PROCEDURE test04_like;
|
||||
DROP PROCEDURE test05_mcol4726;
|
||||
EXECUTE IMMEDIATE CONCAT('DROP DATABASE ', @database);
|
||||
USE test;
|
||||
SET @@default_storage_engine=DEFAULT;
|
||||
|
@ -152,6 +152,32 @@ CALL exec(REPLACE('SELECT * FROM t1 WHERE c1 LIKE ''VAL%'' ORDER BY BINARY c1','
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
CREATE PROCEDURE test05_mcol4726(len INT, datatype TEXT)
|
||||
BEGIN
|
||||
DECLARE small_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('a',len);
|
||||
DECLARE cap_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('A',len);
|
||||
DECLARE small_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE3,len);
|
||||
DECLARE cap_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC3,len);
|
||||
DECLARE small_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE4,len);
|
||||
DECLARE cap_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC4,len);
|
||||
DECLARE ins VARCHAR(64) CHARACTER SET utf8 DEFAULT 'INSERT INTO t1 VALUES(IVAL)';
|
||||
DECLARE sel VARCHAR(64) CHARACTER SET utf8 DEFAULT 'SELECT c1 FROM t1 WHERE c1=IVAL ORDER BY BINARY c1';
|
||||
CALL exec(REPLACE('CREATE TABLE t1 (c1 DATATYPE)', 'DATATYPE', datatype));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
SET NAMES utf8;
|
||||
SET @datatype='VARCHAR(32) CHARACTER SET utf8 COLLATE utf8_general_nopad_ci';
|
||||
CREATE TABLE t1 (c1 VARCHAR(32) CHARACTER SET utf8 COLLATE utf8_general_nopad_ci);
|
||||
@ -1292,6 +1318,77 @@ c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
|
||||
DROP TABLE t1
|
||||
CALL test05_mcol4726(32, @datatype);
|
||||
|
||||
CREATE TABLE t1 (c1 VARCHAR(32) CHARACTER SET utf8 COLLATE utf8_general_nopad_ci)
|
||||
|
||||
INSERT INTO t1 VALUES('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')
|
||||
|
||||
INSERT INTO t1 VALUES('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA')
|
||||
|
||||
INSERT INTO t1 VALUES('ãããããããããããããããããããããããããããããããã')
|
||||
|
||||
INSERT INTO t1 VALUES('ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ')
|
||||
|
||||
INSERT INTO t1 VALUES('ääääääääääääääääääääääääääääääää')
|
||||
|
||||
INSERT INTO t1 VALUES('ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ')
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ
|
||||
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
ãããããããããããããããããããããããããããããããã
|
||||
ääääääääääääääääääääääääääääääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ
|
||||
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
ãããããããããããããããããããããããããããããããã
|
||||
ääääääääääääääääääääääääääääääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ãããããããããããããããããããããããããããããããã' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ
|
||||
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
ãããããããããããããããããããããããããããããããã
|
||||
ääääääääääääääääääääääääääääääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ
|
||||
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
ãããããããããããããããããããããããããããããããã
|
||||
ääääääääääääääääääääääääääääääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ääääääääääääääääääääääääääääääää' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ
|
||||
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
ãããããããããããããããããããããããããããããããã
|
||||
ääääääääääääääääääääääääääääääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ
|
||||
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
ãããããããããããããããããããããããããããããããã
|
||||
ääääääääääääääääääääääääääääääää
|
||||
|
||||
DROP TABLE t1
|
||||
DROP PROCEDURE exec;
|
||||
DROP PROCEDURE test01_execval;
|
||||
@ -1306,6 +1403,7 @@ DROP PROCEDURE test02_same_table_cmp_field_field_op;
|
||||
DROP PROCEDURE test02_same_table_cmp_field_field;
|
||||
DROP PROCEDURE test03;
|
||||
DROP PROCEDURE test04_like;
|
||||
DROP PROCEDURE test05_mcol4726;
|
||||
EXECUTE IMMEDIATE CONCAT('DROP DATABASE ', @database);
|
||||
USE test;
|
||||
SET @@default_storage_engine=DEFAULT;
|
||||
|
@ -152,6 +152,32 @@ CALL exec(REPLACE('SELECT * FROM t1 WHERE c1 LIKE ''VAL%'' ORDER BY BINARY c1','
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
CREATE PROCEDURE test05_mcol4726(len INT, datatype TEXT)
|
||||
BEGIN
|
||||
DECLARE small_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('a',len);
|
||||
DECLARE cap_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('A',len);
|
||||
DECLARE small_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE3,len);
|
||||
DECLARE cap_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC3,len);
|
||||
DECLARE small_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE4,len);
|
||||
DECLARE cap_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC4,len);
|
||||
DECLARE ins VARCHAR(64) CHARACTER SET utf8 DEFAULT 'INSERT INTO t1 VALUES(IVAL)';
|
||||
DECLARE sel VARCHAR(64) CHARACTER SET utf8 DEFAULT 'SELECT c1 FROM t1 WHERE c1=IVAL ORDER BY BINARY c1';
|
||||
CALL exec(REPLACE('CREATE TABLE t1 (c1 DATATYPE)', 'DATATYPE', datatype));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
SET NAMES utf8;
|
||||
SET @datatype='VARCHAR(32) CHARACTER SET utf8 COLLATE utf8_nopad_bin';
|
||||
CREATE TABLE t1 (c1 VARCHAR(32) CHARACTER SET utf8 COLLATE utf8_nopad_bin);
|
||||
@ -1542,6 +1568,47 @@ SELECT * FROM t1 WHERE c1 LIKE 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%' ORDER BY BINA
|
||||
c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
|
||||
DROP TABLE t1
|
||||
CALL test05_mcol4726(32, @datatype);
|
||||
|
||||
CREATE TABLE t1 (c1 VARCHAR(32) CHARACTER SET utf8 COLLATE utf8_nopad_bin)
|
||||
|
||||
INSERT INTO t1 VALUES('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')
|
||||
|
||||
INSERT INTO t1 VALUES('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA')
|
||||
|
||||
INSERT INTO t1 VALUES('ãããããããããããããããããããããããããããããããã')
|
||||
|
||||
INSERT INTO t1 VALUES('ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ')
|
||||
|
||||
INSERT INTO t1 VALUES('ääääääääääääääääääääääääääääääää')
|
||||
|
||||
INSERT INTO t1 VALUES('ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ')
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' ORDER BY BINARY c1
|
||||
c1
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ãããããããããããããããããããããããããããããããã' ORDER BY BINARY c1
|
||||
c1
|
||||
ãããããããããããããããããããããããããããããããã
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ' ORDER BY BINARY c1
|
||||
c1
|
||||
ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ääääääääääääääääääääääääääääääää' ORDER BY BINARY c1
|
||||
c1
|
||||
ääääääääääääääääääääääääääääääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ' ORDER BY BINARY c1
|
||||
c1
|
||||
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
|
||||
DROP TABLE t1
|
||||
DROP PROCEDURE exec;
|
||||
DROP PROCEDURE test01_execval;
|
||||
@ -1556,6 +1623,7 @@ DROP PROCEDURE test02_same_table_cmp_field_field_op;
|
||||
DROP PROCEDURE test02_same_table_cmp_field_field;
|
||||
DROP PROCEDURE test03;
|
||||
DROP PROCEDURE test04_like;
|
||||
DROP PROCEDURE test05_mcol4726;
|
||||
EXECUTE IMMEDIATE CONCAT('DROP DATABASE ', @database);
|
||||
USE test;
|
||||
SET @@default_storage_engine=DEFAULT;
|
||||
|
@ -152,6 +152,32 @@ CALL exec(REPLACE('SELECT * FROM t1 WHERE c1 LIKE ''VAL%'' ORDER BY BINARY c1','
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
CREATE PROCEDURE test05_mcol4726(len INT, datatype TEXT)
|
||||
BEGIN
|
||||
DECLARE small_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('a',len);
|
||||
DECLARE cap_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('A',len);
|
||||
DECLARE small_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE3,len);
|
||||
DECLARE cap_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC3,len);
|
||||
DECLARE small_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE4,len);
|
||||
DECLARE cap_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC4,len);
|
||||
DECLARE ins VARCHAR(64) CHARACTER SET utf8 DEFAULT 'INSERT INTO t1 VALUES(IVAL)';
|
||||
DECLARE sel VARCHAR(64) CHARACTER SET utf8 DEFAULT 'SELECT c1 FROM t1 WHERE c1=IVAL ORDER BY BINARY c1';
|
||||
CALL exec(REPLACE('CREATE TABLE t1 (c1 DATATYPE)', 'DATATYPE', datatype));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
SET NAMES utf8;
|
||||
SET @datatype='VARCHAR(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci';
|
||||
CREATE TABLE t1 (c1 VARCHAR(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci);
|
||||
@ -1696,6 +1722,77 @@ c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
|
||||
DROP TABLE t1
|
||||
CALL test05_mcol4726(32, @datatype);
|
||||
|
||||
CREATE TABLE t1 (c1 VARCHAR(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci)
|
||||
|
||||
INSERT INTO t1 VALUES('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')
|
||||
|
||||
INSERT INTO t1 VALUES('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA')
|
||||
|
||||
INSERT INTO t1 VALUES('ãããããããããããããããããããããããããããããããã')
|
||||
|
||||
INSERT INTO t1 VALUES('ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ')
|
||||
|
||||
INSERT INTO t1 VALUES('ääääääääääääääääääääääääääääääää')
|
||||
|
||||
INSERT INTO t1 VALUES('ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ')
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ
|
||||
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
ãããããããããããããããããããããããããããããããã
|
||||
ääääääääääääääääääääääääääääääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ
|
||||
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
ãããããããããããããããããããããããããããããããã
|
||||
ääääääääääääääääääääääääääääääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ãããããããããããããããããããããããããããããããã' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ
|
||||
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
ãããããããããããããããããããããããããããããããã
|
||||
ääääääääääääääääääääääääääääääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ
|
||||
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
ãããããããããããããããããããããããããããããããã
|
||||
ääääääääääääääääääääääääääääääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ääääääääääääääääääääääääääääääää' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ
|
||||
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
ãããããããããããããããããããããããããããããããã
|
||||
ääääääääääääääääääääääääääääääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ
|
||||
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
ãããããããããããããããããããããããããããããããã
|
||||
ääääääääääääääääääääääääääääääää
|
||||
|
||||
DROP TABLE t1
|
||||
DROP PROCEDURE exec;
|
||||
DROP PROCEDURE test01_execval;
|
||||
@ -1710,6 +1807,7 @@ DROP PROCEDURE test02_same_table_cmp_field_field_op;
|
||||
DROP PROCEDURE test02_same_table_cmp_field_field;
|
||||
DROP PROCEDURE test03;
|
||||
DROP PROCEDURE test04_like;
|
||||
DROP PROCEDURE test05_mcol4726;
|
||||
EXECUTE IMMEDIATE CONCAT('DROP DATABASE ', @database);
|
||||
USE test;
|
||||
SET @@default_storage_engine=DEFAULT;
|
||||
|
@ -152,6 +152,32 @@ CALL exec(REPLACE('SELECT * FROM t1 WHERE c1 LIKE ''VAL%'' ORDER BY BINARY c1','
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
CREATE PROCEDURE test05_mcol4726(len INT, datatype TEXT)
|
||||
BEGIN
|
||||
DECLARE small_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('a',len);
|
||||
DECLARE cap_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('A',len);
|
||||
DECLARE small_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE3,len);
|
||||
DECLARE cap_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC3,len);
|
||||
DECLARE small_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE4,len);
|
||||
DECLARE cap_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC4,len);
|
||||
DECLARE ins VARCHAR(64) CHARACTER SET utf8 DEFAULT 'INSERT INTO t1 VALUES(IVAL)';
|
||||
DECLARE sel VARCHAR(64) CHARACTER SET utf8 DEFAULT 'SELECT c1 FROM t1 WHERE c1=IVAL ORDER BY BINARY c1';
|
||||
CALL exec(REPLACE('CREATE TABLE t1 (c1 DATATYPE)', 'DATATYPE', datatype));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
SET NAMES utf8;
|
||||
SET @datatype='VARCHAR(32) CHARACTER SET utf8 COLLATE utf8_unicode_nopad_ci';
|
||||
CREATE TABLE t1 (c1 VARCHAR(32) CHARACTER SET utf8 COLLATE utf8_unicode_nopad_ci);
|
||||
@ -1292,6 +1318,77 @@ c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
|
||||
DROP TABLE t1
|
||||
CALL test05_mcol4726(32, @datatype);
|
||||
|
||||
CREATE TABLE t1 (c1 VARCHAR(32) CHARACTER SET utf8 COLLATE utf8_unicode_nopad_ci)
|
||||
|
||||
INSERT INTO t1 VALUES('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')
|
||||
|
||||
INSERT INTO t1 VALUES('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA')
|
||||
|
||||
INSERT INTO t1 VALUES('ãããããããããããããããããããããããããããããããã')
|
||||
|
||||
INSERT INTO t1 VALUES('ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ')
|
||||
|
||||
INSERT INTO t1 VALUES('ääääääääääääääääääääääääääääääää')
|
||||
|
||||
INSERT INTO t1 VALUES('ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ')
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ
|
||||
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
ãããããããããããããããããããããããããããããããã
|
||||
ääääääääääääääääääääääääääääääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ
|
||||
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
ãããããããããããããããããããããããããããããããã
|
||||
ääääääääääääääääääääääääääääääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ãããããããããããããããããããããããããããããããã' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ
|
||||
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
ãããããããããããããããããããããããããããããããã
|
||||
ääääääääääääääääääääääääääääääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ
|
||||
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
ãããããããããããããããããããããããããããããããã
|
||||
ääääääääääääääääääääääääääääääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ääääääääääääääääääääääääääääääää' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ
|
||||
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
ãããããããããããããããããããããããããããããããã
|
||||
ääääääääääääääääääääääääääääääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ
|
||||
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
ãããããããããããããããããããããããããããããããã
|
||||
ääääääääääääääääääääääääääääääää
|
||||
|
||||
DROP TABLE t1
|
||||
DROP PROCEDURE exec;
|
||||
DROP PROCEDURE test01_execval;
|
||||
@ -1306,6 +1403,7 @@ DROP PROCEDURE test02_same_table_cmp_field_field_op;
|
||||
DROP PROCEDURE test02_same_table_cmp_field_field;
|
||||
DROP PROCEDURE test03;
|
||||
DROP PROCEDURE test04_like;
|
||||
DROP PROCEDURE test05_mcol4726;
|
||||
EXECUTE IMMEDIATE CONCAT('DROP DATABASE ', @database);
|
||||
USE test;
|
||||
SET @@default_storage_engine=DEFAULT;
|
||||
|
@ -152,6 +152,32 @@ CALL exec(REPLACE('SELECT * FROM t1 WHERE c1 LIKE ''VAL%'' ORDER BY BINARY c1','
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
CREATE PROCEDURE test05_mcol4726(len INT, datatype TEXT)
|
||||
BEGIN
|
||||
DECLARE small_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('a',len);
|
||||
DECLARE cap_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('A',len);
|
||||
DECLARE small_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE3,len);
|
||||
DECLARE cap_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC3,len);
|
||||
DECLARE small_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE4,len);
|
||||
DECLARE cap_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC4,len);
|
||||
DECLARE ins VARCHAR(64) CHARACTER SET utf8 DEFAULT 'INSERT INTO t1 VALUES(IVAL)';
|
||||
DECLARE sel VARCHAR(64) CHARACTER SET utf8 DEFAULT 'SELECT c1 FROM t1 WHERE c1=IVAL ORDER BY BINARY c1';
|
||||
CALL exec(REPLACE('CREATE TABLE t1 (c1 DATATYPE)', 'DATATYPE', datatype));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
SET NAMES utf8;
|
||||
SET @datatype='VARCHAR(4) CHARACTER SET latin1 COLLATE latin1_bin';
|
||||
CREATE TABLE t1 (c1 VARCHAR(4) CHARACTER SET latin1 COLLATE latin1_bin);
|
||||
@ -1566,6 +1592,47 @@ SELECT * FROM t1 WHERE c1 LIKE 'AAAA%' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAA
|
||||
|
||||
DROP TABLE t1
|
||||
CALL test05_mcol4726(4, @datatype);
|
||||
|
||||
CREATE TABLE t1 (c1 VARCHAR(4) CHARACTER SET latin1 COLLATE latin1_bin)
|
||||
|
||||
INSERT INTO t1 VALUES('aaaa')
|
||||
|
||||
INSERT INTO t1 VALUES('AAAA')
|
||||
|
||||
INSERT INTO t1 VALUES('ãããã')
|
||||
|
||||
INSERT INTO t1 VALUES('ÃÃÃÃ')
|
||||
|
||||
INSERT INTO t1 VALUES('ääää')
|
||||
|
||||
INSERT INTO t1 VALUES('ÄÄÄÄ')
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='aaaa' ORDER BY BINARY c1
|
||||
c1
|
||||
aaaa
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='AAAA' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAA
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ãããã' ORDER BY BINARY c1
|
||||
c1
|
||||
ãããã
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ÃÃÃÃ' ORDER BY BINARY c1
|
||||
c1
|
||||
ÃÃÃÃ
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ääää' ORDER BY BINARY c1
|
||||
c1
|
||||
ääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ÄÄÄÄ' ORDER BY BINARY c1
|
||||
c1
|
||||
ÄÄÄÄ
|
||||
|
||||
DROP TABLE t1
|
||||
DROP PROCEDURE exec;
|
||||
DROP PROCEDURE test01_execval;
|
||||
@ -1580,6 +1647,7 @@ DROP PROCEDURE test02_same_table_cmp_field_field_op;
|
||||
DROP PROCEDURE test02_same_table_cmp_field_field;
|
||||
DROP PROCEDURE test03;
|
||||
DROP PROCEDURE test04_like;
|
||||
DROP PROCEDURE test05_mcol4726;
|
||||
EXECUTE IMMEDIATE CONCAT('DROP DATABASE ', @database);
|
||||
USE test;
|
||||
SET @@default_storage_engine=DEFAULT;
|
||||
|
@ -152,6 +152,32 @@ CALL exec(REPLACE('SELECT * FROM t1 WHERE c1 LIKE ''VAL%'' ORDER BY BINARY c1','
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
CREATE PROCEDURE test05_mcol4726(len INT, datatype TEXT)
|
||||
BEGIN
|
||||
DECLARE small_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('a',len);
|
||||
DECLARE cap_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('A',len);
|
||||
DECLARE small_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE3,len);
|
||||
DECLARE cap_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC3,len);
|
||||
DECLARE small_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE4,len);
|
||||
DECLARE cap_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC4,len);
|
||||
DECLARE ins VARCHAR(64) CHARACTER SET utf8 DEFAULT 'INSERT INTO t1 VALUES(IVAL)';
|
||||
DECLARE sel VARCHAR(64) CHARACTER SET utf8 DEFAULT 'SELECT c1 FROM t1 WHERE c1=IVAL ORDER BY BINARY c1';
|
||||
CALL exec(REPLACE('CREATE TABLE t1 (c1 DATATYPE)', 'DATATYPE', datatype));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
SET NAMES utf8;
|
||||
SET @datatype='VARCHAR(4) CHARACTER SET latin1 COLLATE latin1_nopad_bin';
|
||||
CREATE TABLE t1 (c1 VARCHAR(4) CHARACTER SET latin1 COLLATE latin1_nopad_bin);
|
||||
@ -1542,6 +1568,47 @@ SELECT * FROM t1 WHERE c1 LIKE 'AAAA%' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAA
|
||||
|
||||
DROP TABLE t1
|
||||
CALL test05_mcol4726(4, @datatype);
|
||||
|
||||
CREATE TABLE t1 (c1 VARCHAR(4) CHARACTER SET latin1 COLLATE latin1_nopad_bin)
|
||||
|
||||
INSERT INTO t1 VALUES('aaaa')
|
||||
|
||||
INSERT INTO t1 VALUES('AAAA')
|
||||
|
||||
INSERT INTO t1 VALUES('ãããã')
|
||||
|
||||
INSERT INTO t1 VALUES('ÃÃÃÃ')
|
||||
|
||||
INSERT INTO t1 VALUES('ääää')
|
||||
|
||||
INSERT INTO t1 VALUES('ÄÄÄÄ')
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='aaaa' ORDER BY BINARY c1
|
||||
c1
|
||||
aaaa
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='AAAA' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAA
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ãããã' ORDER BY BINARY c1
|
||||
c1
|
||||
ãããã
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ÃÃÃÃ' ORDER BY BINARY c1
|
||||
c1
|
||||
ÃÃÃÃ
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ääää' ORDER BY BINARY c1
|
||||
c1
|
||||
ääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ÄÄÄÄ' ORDER BY BINARY c1
|
||||
c1
|
||||
ÄÄÄÄ
|
||||
|
||||
DROP TABLE t1
|
||||
DROP PROCEDURE exec;
|
||||
DROP PROCEDURE test01_execval;
|
||||
@ -1556,6 +1623,7 @@ DROP PROCEDURE test02_same_table_cmp_field_field_op;
|
||||
DROP PROCEDURE test02_same_table_cmp_field_field;
|
||||
DROP PROCEDURE test03;
|
||||
DROP PROCEDURE test04_like;
|
||||
DROP PROCEDURE test05_mcol4726;
|
||||
EXECUTE IMMEDIATE CONCAT('DROP DATABASE ', @database);
|
||||
USE test;
|
||||
SET @@default_storage_engine=DEFAULT;
|
||||
|
@ -152,6 +152,32 @@ CALL exec(REPLACE('SELECT * FROM t1 WHERE c1 LIKE ''VAL%'' ORDER BY BINARY c1','
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
CREATE PROCEDURE test05_mcol4726(len INT, datatype TEXT)
|
||||
BEGIN
|
||||
DECLARE small_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('a',len);
|
||||
DECLARE cap_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('A',len);
|
||||
DECLARE small_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE3,len);
|
||||
DECLARE cap_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC3,len);
|
||||
DECLARE small_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE4,len);
|
||||
DECLARE cap_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC4,len);
|
||||
DECLARE ins VARCHAR(64) CHARACTER SET utf8 DEFAULT 'INSERT INTO t1 VALUES(IVAL)';
|
||||
DECLARE sel VARCHAR(64) CHARACTER SET utf8 DEFAULT 'SELECT c1 FROM t1 WHERE c1=IVAL ORDER BY BINARY c1';
|
||||
CALL exec(REPLACE('CREATE TABLE t1 (c1 DATATYPE)', 'DATATYPE', datatype));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
SET NAMES utf8;
|
||||
SET @datatype='VARCHAR(4) CHARACTER SET latin1 COLLATE latin1_swedish_ci';
|
||||
CREATE TABLE t1 (c1 VARCHAR(4) CHARACTER SET latin1 COLLATE latin1_swedish_ci);
|
||||
@ -1696,6 +1722,61 @@ c1
|
||||
AAAA
|
||||
aaaa
|
||||
|
||||
DROP TABLE t1
|
||||
CALL test05_mcol4726(4, @datatype);
|
||||
|
||||
CREATE TABLE t1 (c1 VARCHAR(4) CHARACTER SET latin1 COLLATE latin1_swedish_ci)
|
||||
|
||||
INSERT INTO t1 VALUES('aaaa')
|
||||
|
||||
INSERT INTO t1 VALUES('AAAA')
|
||||
|
||||
INSERT INTO t1 VALUES('ãããã')
|
||||
|
||||
INSERT INTO t1 VALUES('ÃÃÃÃ')
|
||||
|
||||
INSERT INTO t1 VALUES('ääää')
|
||||
|
||||
INSERT INTO t1 VALUES('ÄÄÄÄ')
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='aaaa' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAA
|
||||
aaaa
|
||||
ÃÃÃÃ
|
||||
ãããã
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='AAAA' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAA
|
||||
aaaa
|
||||
ÃÃÃÃ
|
||||
ãããã
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ãããã' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAA
|
||||
aaaa
|
||||
ÃÃÃÃ
|
||||
ãããã
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ÃÃÃÃ' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAA
|
||||
aaaa
|
||||
ÃÃÃÃ
|
||||
ãããã
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ääää' ORDER BY BINARY c1
|
||||
c1
|
||||
ÄÄÄÄ
|
||||
ääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ÄÄÄÄ' ORDER BY BINARY c1
|
||||
c1
|
||||
ÄÄÄÄ
|
||||
ääää
|
||||
|
||||
DROP TABLE t1
|
||||
DROP PROCEDURE exec;
|
||||
DROP PROCEDURE test01_execval;
|
||||
@ -1710,6 +1791,7 @@ DROP PROCEDURE test02_same_table_cmp_field_field_op;
|
||||
DROP PROCEDURE test02_same_table_cmp_field_field;
|
||||
DROP PROCEDURE test03;
|
||||
DROP PROCEDURE test04_like;
|
||||
DROP PROCEDURE test05_mcol4726;
|
||||
EXECUTE IMMEDIATE CONCAT('DROP DATABASE ', @database);
|
||||
USE test;
|
||||
SET @@default_storage_engine=DEFAULT;
|
||||
|
@ -152,6 +152,32 @@ CALL exec(REPLACE('SELECT * FROM t1 WHERE c1 LIKE ''VAL%'' ORDER BY BINARY c1','
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
CREATE PROCEDURE test05_mcol4726(len INT, datatype TEXT)
|
||||
BEGIN
|
||||
DECLARE small_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('a',len);
|
||||
DECLARE cap_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('A',len);
|
||||
DECLARE small_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE3,len);
|
||||
DECLARE cap_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC3,len);
|
||||
DECLARE small_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE4,len);
|
||||
DECLARE cap_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC4,len);
|
||||
DECLARE ins VARCHAR(64) CHARACTER SET utf8 DEFAULT 'INSERT INTO t1 VALUES(IVAL)';
|
||||
DECLARE sel VARCHAR(64) CHARACTER SET utf8 DEFAULT 'SELECT c1 FROM t1 WHERE c1=IVAL ORDER BY BINARY c1';
|
||||
CALL exec(REPLACE('CREATE TABLE t1 (c1 DATATYPE)', 'DATATYPE', datatype));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
SET NAMES utf8;
|
||||
SET @datatype='VARCHAR(4) CHARACTER SET latin1 COLLATE latin1_swedish_nopad_ci';
|
||||
CREATE TABLE t1 (c1 VARCHAR(4) CHARACTER SET latin1 COLLATE latin1_swedish_nopad_ci);
|
||||
@ -1580,6 +1606,61 @@ c1
|
||||
AAAA
|
||||
aaaa
|
||||
|
||||
DROP TABLE t1
|
||||
CALL test05_mcol4726(4, @datatype);
|
||||
|
||||
CREATE TABLE t1 (c1 VARCHAR(4) CHARACTER SET latin1 COLLATE latin1_swedish_nopad_ci)
|
||||
|
||||
INSERT INTO t1 VALUES('aaaa')
|
||||
|
||||
INSERT INTO t1 VALUES('AAAA')
|
||||
|
||||
INSERT INTO t1 VALUES('ãããã')
|
||||
|
||||
INSERT INTO t1 VALUES('ÃÃÃÃ')
|
||||
|
||||
INSERT INTO t1 VALUES('ääää')
|
||||
|
||||
INSERT INTO t1 VALUES('ÄÄÄÄ')
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='aaaa' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAA
|
||||
aaaa
|
||||
ÃÃÃÃ
|
||||
ãããã
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='AAAA' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAA
|
||||
aaaa
|
||||
ÃÃÃÃ
|
||||
ãããã
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ãããã' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAA
|
||||
aaaa
|
||||
ÃÃÃÃ
|
||||
ãããã
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ÃÃÃÃ' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAA
|
||||
aaaa
|
||||
ÃÃÃÃ
|
||||
ãããã
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ääää' ORDER BY BINARY c1
|
||||
c1
|
||||
ÄÄÄÄ
|
||||
ääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ÄÄÄÄ' ORDER BY BINARY c1
|
||||
c1
|
||||
ÄÄÄÄ
|
||||
ääää
|
||||
|
||||
DROP TABLE t1
|
||||
DROP PROCEDURE exec;
|
||||
DROP PROCEDURE test01_execval;
|
||||
@ -1594,6 +1675,7 @@ DROP PROCEDURE test02_same_table_cmp_field_field_op;
|
||||
DROP PROCEDURE test02_same_table_cmp_field_field;
|
||||
DROP PROCEDURE test03;
|
||||
DROP PROCEDURE test04_like;
|
||||
DROP PROCEDURE test05_mcol4726;
|
||||
EXECUTE IMMEDIATE CONCAT('DROP DATABASE ', @database);
|
||||
USE test;
|
||||
SET @@default_storage_engine=DEFAULT;
|
||||
|
@ -152,6 +152,32 @@ CALL exec(REPLACE('SELECT * FROM t1 WHERE c1 LIKE ''VAL%'' ORDER BY BINARY c1','
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
CREATE PROCEDURE test05_mcol4726(len INT, datatype TEXT)
|
||||
BEGIN
|
||||
DECLARE small_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('a',len);
|
||||
DECLARE cap_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('A',len);
|
||||
DECLARE small_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE3,len);
|
||||
DECLARE cap_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC3,len);
|
||||
DECLARE small_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE4,len);
|
||||
DECLARE cap_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC4,len);
|
||||
DECLARE ins VARCHAR(64) CHARACTER SET utf8 DEFAULT 'INSERT INTO t1 VALUES(IVAL)';
|
||||
DECLARE sel VARCHAR(64) CHARACTER SET utf8 DEFAULT 'SELECT c1 FROM t1 WHERE c1=IVAL ORDER BY BINARY c1';
|
||||
CALL exec(REPLACE('CREATE TABLE t1 (c1 DATATYPE)', 'DATATYPE', datatype));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
SET NAMES utf8;
|
||||
SET @datatype='VARCHAR(4) CHARACTER SET utf8 COLLATE utf8_bin';
|
||||
CREATE TABLE t1 (c1 VARCHAR(4) CHARACTER SET utf8 COLLATE utf8_bin);
|
||||
@ -1566,6 +1592,47 @@ SELECT * FROM t1 WHERE c1 LIKE 'AAAA%' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAA
|
||||
|
||||
DROP TABLE t1
|
||||
CALL test05_mcol4726(4, @datatype);
|
||||
|
||||
CREATE TABLE t1 (c1 VARCHAR(4) CHARACTER SET utf8 COLLATE utf8_bin)
|
||||
|
||||
INSERT INTO t1 VALUES('aaaa')
|
||||
|
||||
INSERT INTO t1 VALUES('AAAA')
|
||||
|
||||
INSERT INTO t1 VALUES('ãããã')
|
||||
|
||||
INSERT INTO t1 VALUES('ÃÃÃÃ')
|
||||
|
||||
INSERT INTO t1 VALUES('ääää')
|
||||
|
||||
INSERT INTO t1 VALUES('ÄÄÄÄ')
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='aaaa' ORDER BY BINARY c1
|
||||
c1
|
||||
aaaa
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='AAAA' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAA
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ãããã' ORDER BY BINARY c1
|
||||
c1
|
||||
ãããã
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ÃÃÃÃ' ORDER BY BINARY c1
|
||||
c1
|
||||
ÃÃÃÃ
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ääää' ORDER BY BINARY c1
|
||||
c1
|
||||
ääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ÄÄÄÄ' ORDER BY BINARY c1
|
||||
c1
|
||||
ÄÄÄÄ
|
||||
|
||||
DROP TABLE t1
|
||||
DROP PROCEDURE exec;
|
||||
DROP PROCEDURE test01_execval;
|
||||
@ -1580,6 +1647,7 @@ DROP PROCEDURE test02_same_table_cmp_field_field_op;
|
||||
DROP PROCEDURE test02_same_table_cmp_field_field;
|
||||
DROP PROCEDURE test03;
|
||||
DROP PROCEDURE test04_like;
|
||||
DROP PROCEDURE test05_mcol4726;
|
||||
EXECUTE IMMEDIATE CONCAT('DROP DATABASE ', @database);
|
||||
USE test;
|
||||
SET @@default_storage_engine=DEFAULT;
|
||||
|
@ -152,6 +152,32 @@ CALL exec(REPLACE('SELECT * FROM t1 WHERE c1 LIKE ''VAL%'' ORDER BY BINARY c1','
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
CREATE PROCEDURE test05_mcol4726(len INT, datatype TEXT)
|
||||
BEGIN
|
||||
DECLARE small_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('a',len);
|
||||
DECLARE cap_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('A',len);
|
||||
DECLARE small_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE3,len);
|
||||
DECLARE cap_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC3,len);
|
||||
DECLARE small_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE4,len);
|
||||
DECLARE cap_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC4,len);
|
||||
DECLARE ins VARCHAR(64) CHARACTER SET utf8 DEFAULT 'INSERT INTO t1 VALUES(IVAL)';
|
||||
DECLARE sel VARCHAR(64) CHARACTER SET utf8 DEFAULT 'SELECT c1 FROM t1 WHERE c1=IVAL ORDER BY BINARY c1';
|
||||
CALL exec(REPLACE('CREATE TABLE t1 (c1 DATATYPE)', 'DATATYPE', datatype));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
SET NAMES utf8;
|
||||
SET @datatype='VARCHAR(4) CHARACTER SET utf8 COLLATE utf8_general_ci';
|
||||
CREATE TABLE t1 (c1 VARCHAR(4) CHARACTER SET utf8 COLLATE utf8_general_ci);
|
||||
@ -1696,6 +1722,77 @@ c1
|
||||
AAAA
|
||||
aaaa
|
||||
|
||||
DROP TABLE t1
|
||||
CALL test05_mcol4726(4, @datatype);
|
||||
|
||||
CREATE TABLE t1 (c1 VARCHAR(4) CHARACTER SET utf8 COLLATE utf8_general_ci)
|
||||
|
||||
INSERT INTO t1 VALUES('aaaa')
|
||||
|
||||
INSERT INTO t1 VALUES('AAAA')
|
||||
|
||||
INSERT INTO t1 VALUES('ãããã')
|
||||
|
||||
INSERT INTO t1 VALUES('ÃÃÃÃ')
|
||||
|
||||
INSERT INTO t1 VALUES('ääää')
|
||||
|
||||
INSERT INTO t1 VALUES('ÄÄÄÄ')
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='aaaa' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAA
|
||||
aaaa
|
||||
ÃÃÃÃ
|
||||
ÄÄÄÄ
|
||||
ãããã
|
||||
ääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='AAAA' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAA
|
||||
aaaa
|
||||
ÃÃÃÃ
|
||||
ÄÄÄÄ
|
||||
ãããã
|
||||
ääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ãããã' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAA
|
||||
aaaa
|
||||
ÃÃÃÃ
|
||||
ÄÄÄÄ
|
||||
ãããã
|
||||
ääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ÃÃÃÃ' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAA
|
||||
aaaa
|
||||
ÃÃÃÃ
|
||||
ÄÄÄÄ
|
||||
ãããã
|
||||
ääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ääää' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAA
|
||||
aaaa
|
||||
ÃÃÃÃ
|
||||
ÄÄÄÄ
|
||||
ãããã
|
||||
ääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ÄÄÄÄ' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAA
|
||||
aaaa
|
||||
ÃÃÃÃ
|
||||
ÄÄÄÄ
|
||||
ãããã
|
||||
ääää
|
||||
|
||||
DROP TABLE t1
|
||||
DROP PROCEDURE exec;
|
||||
DROP PROCEDURE test01_execval;
|
||||
@ -1710,6 +1807,7 @@ DROP PROCEDURE test02_same_table_cmp_field_field_op;
|
||||
DROP PROCEDURE test02_same_table_cmp_field_field;
|
||||
DROP PROCEDURE test03;
|
||||
DROP PROCEDURE test04_like;
|
||||
DROP PROCEDURE test05_mcol4726;
|
||||
EXECUTE IMMEDIATE CONCAT('DROP DATABASE ', @database);
|
||||
USE test;
|
||||
SET @@default_storage_engine=DEFAULT;
|
||||
|
@ -152,6 +152,32 @@ CALL exec(REPLACE('SELECT * FROM t1 WHERE c1 LIKE ''VAL%'' ORDER BY BINARY c1','
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
CREATE PROCEDURE test05_mcol4726(len INT, datatype TEXT)
|
||||
BEGIN
|
||||
DECLARE small_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('a',len);
|
||||
DECLARE cap_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('A',len);
|
||||
DECLARE small_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE3,len);
|
||||
DECLARE cap_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC3,len);
|
||||
DECLARE small_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE4,len);
|
||||
DECLARE cap_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC4,len);
|
||||
DECLARE ins VARCHAR(64) CHARACTER SET utf8 DEFAULT 'INSERT INTO t1 VALUES(IVAL)';
|
||||
DECLARE sel VARCHAR(64) CHARACTER SET utf8 DEFAULT 'SELECT c1 FROM t1 WHERE c1=IVAL ORDER BY BINARY c1';
|
||||
CALL exec(REPLACE('CREATE TABLE t1 (c1 DATATYPE)', 'DATATYPE', datatype));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
SET NAMES utf8;
|
||||
SET @datatype='VARCHAR(4) CHARACTER SET utf8 COLLATE utf8_general_nopad_ci';
|
||||
CREATE TABLE t1 (c1 VARCHAR(4) CHARACTER SET utf8 COLLATE utf8_general_nopad_ci);
|
||||
@ -1292,6 +1318,77 @@ c1
|
||||
AAAA
|
||||
aaaa
|
||||
|
||||
DROP TABLE t1
|
||||
CALL test05_mcol4726(4, @datatype);
|
||||
|
||||
CREATE TABLE t1 (c1 VARCHAR(4) CHARACTER SET utf8 COLLATE utf8_general_nopad_ci)
|
||||
|
||||
INSERT INTO t1 VALUES('aaaa')
|
||||
|
||||
INSERT INTO t1 VALUES('AAAA')
|
||||
|
||||
INSERT INTO t1 VALUES('ãããã')
|
||||
|
||||
INSERT INTO t1 VALUES('ÃÃÃÃ')
|
||||
|
||||
INSERT INTO t1 VALUES('ääää')
|
||||
|
||||
INSERT INTO t1 VALUES('ÄÄÄÄ')
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='aaaa' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAA
|
||||
aaaa
|
||||
ÃÃÃÃ
|
||||
ÄÄÄÄ
|
||||
ãããã
|
||||
ääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='AAAA' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAA
|
||||
aaaa
|
||||
ÃÃÃÃ
|
||||
ÄÄÄÄ
|
||||
ãããã
|
||||
ääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ãããã' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAA
|
||||
aaaa
|
||||
ÃÃÃÃ
|
||||
ÄÄÄÄ
|
||||
ãããã
|
||||
ääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ÃÃÃÃ' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAA
|
||||
aaaa
|
||||
ÃÃÃÃ
|
||||
ÄÄÄÄ
|
||||
ãããã
|
||||
ääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ääää' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAA
|
||||
aaaa
|
||||
ÃÃÃÃ
|
||||
ÄÄÄÄ
|
||||
ãããã
|
||||
ääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ÄÄÄÄ' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAA
|
||||
aaaa
|
||||
ÃÃÃÃ
|
||||
ÄÄÄÄ
|
||||
ãããã
|
||||
ääää
|
||||
|
||||
DROP TABLE t1
|
||||
DROP PROCEDURE exec;
|
||||
DROP PROCEDURE test01_execval;
|
||||
@ -1306,6 +1403,7 @@ DROP PROCEDURE test02_same_table_cmp_field_field_op;
|
||||
DROP PROCEDURE test02_same_table_cmp_field_field;
|
||||
DROP PROCEDURE test03;
|
||||
DROP PROCEDURE test04_like;
|
||||
DROP PROCEDURE test05_mcol4726;
|
||||
EXECUTE IMMEDIATE CONCAT('DROP DATABASE ', @database);
|
||||
USE test;
|
||||
SET @@default_storage_engine=DEFAULT;
|
||||
|
@ -152,6 +152,32 @@ CALL exec(REPLACE('SELECT * FROM t1 WHERE c1 LIKE ''VAL%'' ORDER BY BINARY c1','
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
CREATE PROCEDURE test05_mcol4726(len INT, datatype TEXT)
|
||||
BEGIN
|
||||
DECLARE small_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('a',len);
|
||||
DECLARE cap_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('A',len);
|
||||
DECLARE small_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE3,len);
|
||||
DECLARE cap_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC3,len);
|
||||
DECLARE small_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE4,len);
|
||||
DECLARE cap_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC4,len);
|
||||
DECLARE ins VARCHAR(64) CHARACTER SET utf8 DEFAULT 'INSERT INTO t1 VALUES(IVAL)';
|
||||
DECLARE sel VARCHAR(64) CHARACTER SET utf8 DEFAULT 'SELECT c1 FROM t1 WHERE c1=IVAL ORDER BY BINARY c1';
|
||||
CALL exec(REPLACE('CREATE TABLE t1 (c1 DATATYPE)', 'DATATYPE', datatype));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
SET NAMES utf8;
|
||||
SET @datatype='VARCHAR(4) CHARACTER SET utf8 COLLATE utf8_nopad_bin';
|
||||
CREATE TABLE t1 (c1 VARCHAR(4) CHARACTER SET utf8 COLLATE utf8_nopad_bin);
|
||||
@ -1542,6 +1568,47 @@ SELECT * FROM t1 WHERE c1 LIKE 'AAAA%' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAA
|
||||
|
||||
DROP TABLE t1
|
||||
CALL test05_mcol4726(4, @datatype);
|
||||
|
||||
CREATE TABLE t1 (c1 VARCHAR(4) CHARACTER SET utf8 COLLATE utf8_nopad_bin)
|
||||
|
||||
INSERT INTO t1 VALUES('aaaa')
|
||||
|
||||
INSERT INTO t1 VALUES('AAAA')
|
||||
|
||||
INSERT INTO t1 VALUES('ãããã')
|
||||
|
||||
INSERT INTO t1 VALUES('ÃÃÃÃ')
|
||||
|
||||
INSERT INTO t1 VALUES('ääää')
|
||||
|
||||
INSERT INTO t1 VALUES('ÄÄÄÄ')
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='aaaa' ORDER BY BINARY c1
|
||||
c1
|
||||
aaaa
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='AAAA' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAA
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ãããã' ORDER BY BINARY c1
|
||||
c1
|
||||
ãããã
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ÃÃÃÃ' ORDER BY BINARY c1
|
||||
c1
|
||||
ÃÃÃÃ
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ääää' ORDER BY BINARY c1
|
||||
c1
|
||||
ääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ÄÄÄÄ' ORDER BY BINARY c1
|
||||
c1
|
||||
ÄÄÄÄ
|
||||
|
||||
DROP TABLE t1
|
||||
DROP PROCEDURE exec;
|
||||
DROP PROCEDURE test01_execval;
|
||||
@ -1556,6 +1623,7 @@ DROP PROCEDURE test02_same_table_cmp_field_field_op;
|
||||
DROP PROCEDURE test02_same_table_cmp_field_field;
|
||||
DROP PROCEDURE test03;
|
||||
DROP PROCEDURE test04_like;
|
||||
DROP PROCEDURE test05_mcol4726;
|
||||
EXECUTE IMMEDIATE CONCAT('DROP DATABASE ', @database);
|
||||
USE test;
|
||||
SET @@default_storage_engine=DEFAULT;
|
||||
|
@ -152,6 +152,32 @@ CALL exec(REPLACE('SELECT * FROM t1 WHERE c1 LIKE ''VAL%'' ORDER BY BINARY c1','
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
CREATE PROCEDURE test05_mcol4726(len INT, datatype TEXT)
|
||||
BEGIN
|
||||
DECLARE small_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('a',len);
|
||||
DECLARE cap_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('A',len);
|
||||
DECLARE small_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE3,len);
|
||||
DECLARE cap_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC3,len);
|
||||
DECLARE small_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE4,len);
|
||||
DECLARE cap_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC4,len);
|
||||
DECLARE ins VARCHAR(64) CHARACTER SET utf8 DEFAULT 'INSERT INTO t1 VALUES(IVAL)';
|
||||
DECLARE sel VARCHAR(64) CHARACTER SET utf8 DEFAULT 'SELECT c1 FROM t1 WHERE c1=IVAL ORDER BY BINARY c1';
|
||||
CALL exec(REPLACE('CREATE TABLE t1 (c1 DATATYPE)', 'DATATYPE', datatype));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
SET NAMES utf8;
|
||||
SET @datatype='VARCHAR(4) CHARACTER SET utf8 COLLATE utf8_unicode_ci';
|
||||
CREATE TABLE t1 (c1 VARCHAR(4) CHARACTER SET utf8 COLLATE utf8_unicode_ci);
|
||||
@ -1696,6 +1722,77 @@ c1
|
||||
AAAA
|
||||
aaaa
|
||||
|
||||
DROP TABLE t1
|
||||
CALL test05_mcol4726(4, @datatype);
|
||||
|
||||
CREATE TABLE t1 (c1 VARCHAR(4) CHARACTER SET utf8 COLLATE utf8_unicode_ci)
|
||||
|
||||
INSERT INTO t1 VALUES('aaaa')
|
||||
|
||||
INSERT INTO t1 VALUES('AAAA')
|
||||
|
||||
INSERT INTO t1 VALUES('ãããã')
|
||||
|
||||
INSERT INTO t1 VALUES('ÃÃÃÃ')
|
||||
|
||||
INSERT INTO t1 VALUES('ääää')
|
||||
|
||||
INSERT INTO t1 VALUES('ÄÄÄÄ')
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='aaaa' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAA
|
||||
aaaa
|
||||
ÃÃÃÃ
|
||||
ÄÄÄÄ
|
||||
ãããã
|
||||
ääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='AAAA' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAA
|
||||
aaaa
|
||||
ÃÃÃÃ
|
||||
ÄÄÄÄ
|
||||
ãããã
|
||||
ääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ãããã' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAA
|
||||
aaaa
|
||||
ÃÃÃÃ
|
||||
ÄÄÄÄ
|
||||
ãããã
|
||||
ääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ÃÃÃÃ' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAA
|
||||
aaaa
|
||||
ÃÃÃÃ
|
||||
ÄÄÄÄ
|
||||
ãããã
|
||||
ääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ääää' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAA
|
||||
aaaa
|
||||
ÃÃÃÃ
|
||||
ÄÄÄÄ
|
||||
ãããã
|
||||
ääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ÄÄÄÄ' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAA
|
||||
aaaa
|
||||
ÃÃÃÃ
|
||||
ÄÄÄÄ
|
||||
ãããã
|
||||
ääää
|
||||
|
||||
DROP TABLE t1
|
||||
DROP PROCEDURE exec;
|
||||
DROP PROCEDURE test01_execval;
|
||||
@ -1710,6 +1807,7 @@ DROP PROCEDURE test02_same_table_cmp_field_field_op;
|
||||
DROP PROCEDURE test02_same_table_cmp_field_field;
|
||||
DROP PROCEDURE test03;
|
||||
DROP PROCEDURE test04_like;
|
||||
DROP PROCEDURE test05_mcol4726;
|
||||
EXECUTE IMMEDIATE CONCAT('DROP DATABASE ', @database);
|
||||
USE test;
|
||||
SET @@default_storage_engine=DEFAULT;
|
||||
|
@ -152,6 +152,32 @@ CALL exec(REPLACE('SELECT * FROM t1 WHERE c1 LIKE ''VAL%'' ORDER BY BINARY c1','
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
CREATE PROCEDURE test05_mcol4726(len INT, datatype TEXT)
|
||||
BEGIN
|
||||
DECLARE small_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('a',len);
|
||||
DECLARE cap_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('A',len);
|
||||
DECLARE small_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE3,len);
|
||||
DECLARE cap_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC3,len);
|
||||
DECLARE small_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE4,len);
|
||||
DECLARE cap_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC4,len);
|
||||
DECLARE ins VARCHAR(64) CHARACTER SET utf8 DEFAULT 'INSERT INTO t1 VALUES(IVAL)';
|
||||
DECLARE sel VARCHAR(64) CHARACTER SET utf8 DEFAULT 'SELECT c1 FROM t1 WHERE c1=IVAL ORDER BY BINARY c1';
|
||||
CALL exec(REPLACE('CREATE TABLE t1 (c1 DATATYPE)', 'DATATYPE', datatype));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
SET NAMES utf8;
|
||||
SET @datatype='VARCHAR(4) CHARACTER SET utf8 COLLATE utf8_unicode_nopad_ci';
|
||||
CREATE TABLE t1 (c1 VARCHAR(4) CHARACTER SET utf8 COLLATE utf8_unicode_nopad_ci);
|
||||
@ -1292,6 +1318,77 @@ c1
|
||||
AAAA
|
||||
aaaa
|
||||
|
||||
DROP TABLE t1
|
||||
CALL test05_mcol4726(4, @datatype);
|
||||
|
||||
CREATE TABLE t1 (c1 VARCHAR(4) CHARACTER SET utf8 COLLATE utf8_unicode_nopad_ci)
|
||||
|
||||
INSERT INTO t1 VALUES('aaaa')
|
||||
|
||||
INSERT INTO t1 VALUES('AAAA')
|
||||
|
||||
INSERT INTO t1 VALUES('ãããã')
|
||||
|
||||
INSERT INTO t1 VALUES('ÃÃÃÃ')
|
||||
|
||||
INSERT INTO t1 VALUES('ääää')
|
||||
|
||||
INSERT INTO t1 VALUES('ÄÄÄÄ')
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='aaaa' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAA
|
||||
aaaa
|
||||
ÃÃÃÃ
|
||||
ÄÄÄÄ
|
||||
ãããã
|
||||
ääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='AAAA' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAA
|
||||
aaaa
|
||||
ÃÃÃÃ
|
||||
ÄÄÄÄ
|
||||
ãããã
|
||||
ääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ãããã' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAA
|
||||
aaaa
|
||||
ÃÃÃÃ
|
||||
ÄÄÄÄ
|
||||
ãããã
|
||||
ääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ÃÃÃÃ' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAA
|
||||
aaaa
|
||||
ÃÃÃÃ
|
||||
ÄÄÄÄ
|
||||
ãããã
|
||||
ääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ääää' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAA
|
||||
aaaa
|
||||
ÃÃÃÃ
|
||||
ÄÄÄÄ
|
||||
ãããã
|
||||
ääää
|
||||
|
||||
SELECT c1 FROM t1 WHERE c1='ÄÄÄÄ' ORDER BY BINARY c1
|
||||
c1
|
||||
AAAA
|
||||
aaaa
|
||||
ÃÃÃÃ
|
||||
ÄÄÄÄ
|
||||
ãããã
|
||||
ääää
|
||||
|
||||
DROP TABLE t1
|
||||
DROP PROCEDURE exec;
|
||||
DROP PROCEDURE test01_execval;
|
||||
@ -1306,6 +1403,7 @@ DROP PROCEDURE test02_same_table_cmp_field_field_op;
|
||||
DROP PROCEDURE test02_same_table_cmp_field_field;
|
||||
DROP PROCEDURE test03;
|
||||
DROP PROCEDURE test04_like;
|
||||
DROP PROCEDURE test05_mcol4726;
|
||||
EXECUTE IMMEDIATE CONCAT('DROP DATABASE ', @database);
|
||||
USE test;
|
||||
SET @@default_storage_engine=DEFAULT;
|
||||
|
@ -1,8 +1,34 @@
|
||||
--source ../include/have_columnstore.inc
|
||||
--source ctype_cmp_combinations.inc
|
||||
--source ctype_cmp_create.inc
|
||||
|
||||
SET NAMES utf8;
|
||||
|
||||
|
||||
SET @datatype='CHAR(1) CHARACTER SET latin1 COLLATE latin1_swedish_ci';
|
||||
|
||||
CREATE TABLE t1 (c1 CHAR(1) CHARACTER SET latin1 COLLATE latin1_swedish_ci);
|
||||
|
||||
CALL test01_populate(1,1);
|
||||
CALL test01_field_literal(1,2);
|
||||
CALL test01_field_field();
|
||||
CALL test01_distinct();
|
||||
DROP TABLE t1;
|
||||
|
||||
CALL test02_same_table_create_table(@datatype);
|
||||
CALL test02_same_table_populate();
|
||||
CALL test02_same_table_cmp_field_field();
|
||||
DROP TABLE t1;
|
||||
|
||||
CALL test03(1, @datatype);
|
||||
|
||||
CALL test04_like(1, @datatype);
|
||||
|
||||
CALL test05_mcol4726(1, @datatype);
|
||||
|
||||
--source ctype_cmp_drop.inc
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # MCOL-4721 CHAR(1) is not collation-aware for GROUP/DISTINCT
|
||||
--echo #
|
||||
@ -15,3 +41,12 @@ INSERT INTO t1 VALUES ('ä'),('Ä'),('ã'),('Ã');
|
||||
SELECT c1, COUNT(*) FROM t1 GROUP BY c1 ORDER BY c1;
|
||||
SELECT DISTINCT c1 FROM t1 ORDER BY c1;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # MCOL-4726 Wrong result of WHERE char1_col='A'
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1 (a CHAR(1) CHARACTER SET latin1);
|
||||
INSERT INTO t1 VALUES ('a'),('Ã');
|
||||
SELECT * FROM t1 WHERE a='A';
|
||||
DROP TABLE t1;
|
||||
|
@ -23,4 +23,6 @@ CALL test03(4, @datatype);
|
||||
|
||||
CALL test04_like(4, @datatype);
|
||||
|
||||
CALL test05_mcol4726(4, @datatype);
|
||||
|
||||
--source ctype_cmp_drop.inc
|
||||
|
@ -23,4 +23,6 @@ CALL test03(5, @datatype);
|
||||
|
||||
CALL test04_like(5, @datatype);
|
||||
|
||||
CALL test05_mcol4726(5, @datatype);
|
||||
|
||||
--source ctype_cmp_drop.inc
|
||||
|
@ -227,3 +227,37 @@ BEGIN
|
||||
END;
|
||||
$$
|
||||
DELIMITER ;$$
|
||||
|
||||
|
||||
DELIMITER $$;
|
||||
CREATE PROCEDURE test05_mcol4726(len INT, datatype TEXT)
|
||||
BEGIN
|
||||
DECLARE small_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('a',len);
|
||||
DECLARE cap_a VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT('A',len);
|
||||
DECLARE small_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE3,len);
|
||||
DECLARE cap_a_with_tilde VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC3,len);
|
||||
DECLARE small_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xE4,len);
|
||||
DECLARE cap_a_with_diaeresis VARCHAR(64) CHARACTER SET utf8 DEFAULT REPEAT(_latin1 0xC4,len);
|
||||
DECLARE ins VARCHAR(64) CHARACTER SET utf8 DEFAULT 'INSERT INTO t1 VALUES(IVAL)';
|
||||
DECLARE sel VARCHAR(64) CHARACTER SET utf8 DEFAULT 'SELECT c1 FROM t1 WHERE c1=IVAL ORDER BY BINARY c1';
|
||||
|
||||
CALL exec(REPLACE('CREATE TABLE t1 (c1 DATATYPE)', 'DATATYPE', datatype));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(ins, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_tilde, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', small_a_with_diaeresis, '''')));
|
||||
CALL exec(REPLACE(sel, 'IVAL', CONCAT('''', cap_a_with_diaeresis, '''')));
|
||||
|
||||
CALL exec('DROP TABLE t1');
|
||||
END;
|
||||
$$
|
||||
DELIMITER ;$$
|
||||
|
||||
|
@ -11,6 +11,7 @@ DROP PROCEDURE test02_same_table_cmp_field_field_op;
|
||||
DROP PROCEDURE test02_same_table_cmp_field_field;
|
||||
DROP PROCEDURE test03;
|
||||
DROP PROCEDURE test04_like;
|
||||
DROP PROCEDURE test05_mcol4726;
|
||||
EXECUTE IMMEDIATE CONCAT('DROP DATABASE ', @database);
|
||||
USE test;
|
||||
SET @@default_storage_engine=DEFAULT;
|
||||
|
@ -24,4 +24,6 @@ CALL test03(32,@datatype);
|
||||
|
||||
CALL test04_like(32,@datatype);
|
||||
|
||||
CALL test05_mcol4726(32, @datatype);
|
||||
|
||||
--source ctype_cmp_drop.inc
|
||||
|
@ -23,4 +23,6 @@ CALL test03(32,@datatype);
|
||||
|
||||
CALL test04_like(32,@datatype);
|
||||
|
||||
CALL test05_mcol4726(32, @datatype);
|
||||
|
||||
--source ctype_cmp_drop.inc
|
||||
|
@ -23,4 +23,6 @@ CALL test03(32,@datatype);
|
||||
|
||||
CALL test04_like(32,@datatype);
|
||||
|
||||
CALL test05_mcol4726(32, @datatype);
|
||||
|
||||
--source ctype_cmp_drop.inc
|
||||
|
@ -23,4 +23,6 @@ CALL test03(32,@datatype);
|
||||
|
||||
CALL test04_like(32,@datatype);
|
||||
|
||||
CALL test05_mcol4726(32, @datatype);
|
||||
|
||||
--source ctype_cmp_drop.inc
|
||||
|
@ -23,4 +23,6 @@ CALL test03(32,@datatype);
|
||||
|
||||
CALL test04_like(32,@datatype);
|
||||
|
||||
CALL test05_mcol4726(32, @datatype);
|
||||
|
||||
--source ctype_cmp_drop.inc
|
||||
|
@ -22,4 +22,6 @@ CALL test03(32,@datatype);
|
||||
|
||||
CALL test04_like(32,@datatype);
|
||||
|
||||
CALL test05_mcol4726(32, @datatype);
|
||||
|
||||
--source ctype_cmp_drop.inc
|
||||
|
@ -23,4 +23,6 @@ CALL test03(32,@datatype);
|
||||
|
||||
CALL test04_like(32,@datatype);
|
||||
|
||||
CALL test05_mcol4726(32, @datatype);
|
||||
|
||||
--source ctype_cmp_drop.inc
|
||||
|
@ -22,4 +22,6 @@ CALL test03(32,@datatype);
|
||||
|
||||
CALL test04_like(32,@datatype);
|
||||
|
||||
CALL test05_mcol4726(32, @datatype);
|
||||
|
||||
--source ctype_cmp_drop.inc
|
||||
|
@ -22,4 +22,6 @@ CALL test03(32,@datatype);
|
||||
|
||||
CALL test04_like(32,@datatype);
|
||||
|
||||
CALL test05_mcol4726(32, @datatype);
|
||||
|
||||
--source ctype_cmp_drop.inc
|
||||
|
@ -23,4 +23,6 @@ CALL test03(32,@datatype);
|
||||
|
||||
CALL test04_like(32,@datatype);
|
||||
|
||||
CALL test05_mcol4726(32, @datatype);
|
||||
|
||||
--source ctype_cmp_drop.inc
|
||||
|
@ -23,4 +23,6 @@ CALL test03(4,@datatype);
|
||||
|
||||
CALL test04_like(4,@datatype);
|
||||
|
||||
CALL test05_mcol4726(4, @datatype);
|
||||
|
||||
--source ctype_cmp_drop.inc
|
||||
|
@ -23,4 +23,6 @@ CALL test03(4,@datatype);
|
||||
|
||||
CALL test04_like(4,@datatype);
|
||||
|
||||
CALL test05_mcol4726(4, @datatype);
|
||||
|
||||
--source ctype_cmp_drop.inc
|
||||
|
@ -23,4 +23,6 @@ CALL test03(4,@datatype);
|
||||
|
||||
CALL test04_like(4,@datatype);
|
||||
|
||||
CALL test05_mcol4726(4, @datatype);
|
||||
|
||||
--source ctype_cmp_drop.inc
|
||||
|
@ -23,4 +23,6 @@ CALL test03(4,@datatype);
|
||||
|
||||
CALL test04_like(4,@datatype);
|
||||
|
||||
CALL test05_mcol4726(4, @datatype);
|
||||
|
||||
--source ctype_cmp_drop.inc
|
||||
|
@ -23,4 +23,6 @@ CALL test03(4,@datatype);
|
||||
|
||||
CALL test04_like(4,@datatype);
|
||||
|
||||
CALL test05_mcol4726(4, @datatype);
|
||||
|
||||
--source ctype_cmp_drop.inc
|
||||
|
@ -22,4 +22,6 @@ CALL test03(4,@datatype);
|
||||
|
||||
CALL test04_like(4,@datatype);
|
||||
|
||||
CALL test05_mcol4726(4, @datatype);
|
||||
|
||||
--source ctype_cmp_drop.inc
|
||||
|
@ -23,4 +23,6 @@ CALL test03(4,@datatype);
|
||||
|
||||
CALL test04_like(4,@datatype);
|
||||
|
||||
CALL test05_mcol4726(4, @datatype);
|
||||
|
||||
--source ctype_cmp_drop.inc
|
||||
|
@ -22,4 +22,6 @@ CALL test03(4,@datatype);
|
||||
|
||||
CALL test04_like(4,@datatype);
|
||||
|
||||
CALL test05_mcol4726(4, @datatype);
|
||||
|
||||
--source ctype_cmp_drop.inc
|
||||
|
@ -22,4 +22,6 @@ CALL test03(4,@datatype);
|
||||
|
||||
CALL test04_like(4,@datatype);
|
||||
|
||||
CALL test05_mcol4726(4, @datatype);
|
||||
|
||||
--source ctype_cmp_drop.inc
|
||||
|
@ -23,4 +23,6 @@ CALL test03(4,@datatype);
|
||||
|
||||
CALL test04_like(4,@datatype);
|
||||
|
||||
CALL test05_mcol4726(4, @datatype);
|
||||
|
||||
--source ctype_cmp_drop.inc
|
||||
|
@ -604,8 +604,8 @@ inline bool colCompare(int64_t val1, int64_t val2, uint8_t COP, uint8_t rf,
|
||||
if ((typeHolder.getCharset().state & (MY_CS_BINSORT|MY_CS_NOPAD)) ==
|
||||
(MY_CS_BINSORT|MY_CS_NOPAD))
|
||||
return colCompare_(order_swap(val1), order_swap(val2), COP);
|
||||
utils::ConstString s1 = {reinterpret_cast<const char*>(&val1), 8};
|
||||
utils::ConstString s2 = {reinterpret_cast<const char*>(&val2), 8};
|
||||
utils::ConstString s1 = {reinterpret_cast<const char*>(&val1), width};
|
||||
utils::ConstString s2 = {reinterpret_cast<const char*>(&val2), width};
|
||||
return colCompareStr(typeHolder, COP, s1.rtrimZero(), s2.rtrimZero());
|
||||
}
|
||||
else
|
||||
@ -1303,10 +1303,10 @@ inline void p_Col_ridArray(NewColRequestHeader* in,
|
||||
if (out->ValidMinMax && !isNull && !isEmpty)
|
||||
{
|
||||
|
||||
if ((in->colType.DataType == CalpontSystemCatalog::CHAR ||
|
||||
if (in->colType.DataType == CalpontSystemCatalog::CHAR ||
|
||||
in->colType.DataType == CalpontSystemCatalog::VARCHAR ||
|
||||
in->colType.DataType == CalpontSystemCatalog::BLOB ||
|
||||
in->colType.DataType == CalpontSystemCatalog::TEXT ) && 1 < W)
|
||||
in->colType.DataType == CalpontSystemCatalog::TEXT )
|
||||
{
|
||||
if (colCompare(out->Min, val, COMPARE_GT, false, in->colType, W))
|
||||
out->Min = val;
|
||||
|
@ -620,8 +620,8 @@ bool StrFilterCmd::compare_cc(uint64_t i, uint64_t j)
|
||||
datatypes::Charset cs(leftColType.getCharset());
|
||||
datatypes::TCharShort s0(bpp->fFiltCmdValues[0][i]);
|
||||
datatypes::TCharShort s1(bpp->fFiltCmdValues[1][j]);
|
||||
return compareString(cs, static_cast<utils::ConstString>(s0),
|
||||
static_cast<utils::ConstString>(s1), fBOP);
|
||||
return compareString(cs, s0.toConstString(leftColType.colWidth),
|
||||
s1.toConstString(rightColType.colWidth), fBOP);
|
||||
}
|
||||
|
||||
|
||||
@ -647,7 +647,7 @@ bool StrFilterCmd::compare_cs(uint64_t i, uint64_t j)
|
||||
datatypes::Charset cs(leftColType.getCharset());
|
||||
datatypes::TCharShort s0(bpp->fFiltCmdValues[0][i]);
|
||||
utils::ConstString s1(bpp->fFiltStrValues[1][j]);
|
||||
return compareString(cs, static_cast<utils::ConstString>(s0), s1, fBOP);
|
||||
return compareString(cs, s0.toConstString(leftColType.colWidth), s1, fBOP);
|
||||
}
|
||||
|
||||
|
||||
@ -660,7 +660,7 @@ bool StrFilterCmd::compare_sc(uint64_t i, uint64_t j)
|
||||
datatypes::Charset cs(leftColType.getCharset());
|
||||
utils::ConstString s0(bpp->fFiltStrValues[0][i]);
|
||||
datatypes::TCharShort s1(bpp->fFiltCmdValues[1][j]);
|
||||
return compareString(cs, s0, static_cast<utils::ConstString>(s1), fBOP);
|
||||
return compareString(cs, s0, s1.toConstString(rightColType.colWidth), fBOP);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1131,13 +1131,13 @@ void TupleJoiner::updateCPData(const Row& r)
|
||||
datatypes::Charset cs(r.getCharset(colIdx));
|
||||
int64_t val = r.getIntField(colIdx);
|
||||
|
||||
if (datatypes::TCharShort::strnncollsp(cs, val, min) < 0 ||
|
||||
if (datatypes::TCharShort::strnncollsp(cs, val, min, r.getColumnWidth(smallKeyColumns[col])) < 0 ||
|
||||
((int64_t) min) == numeric_limits<int64_t>::max())
|
||||
{
|
||||
min = val;
|
||||
}
|
||||
|
||||
if (datatypes::TCharShort::strnncollsp(cs, val, max) > 0 ||
|
||||
if (datatypes::TCharShort::strnncollsp(cs, val, max, r.getColumnWidth(smallKeyColumns[col])) > 0 ||
|
||||
((int64_t) max) == numeric_limits<int64_t>::min())
|
||||
{
|
||||
max = val;
|
||||
|
Reference in New Issue
Block a user