Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
1932b40c
Commit
1932b40c
authored
Sep 16, 2003
by
bar@bar.mysql.r18.ru
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
UCS tests
parent
83c69462
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
241 additions
and
0 deletions
+241
-0
mysql-test/r/ctype_ucs.result
mysql-test/r/ctype_ucs.result
+111
-0
mysql-test/t/ctype_ucs.test
mysql-test/t/ctype_ucs.test
+130
-0
No files found.
mysql-test/r/ctype_ucs.result
0 → 100644
View file @
1932b40c
DROP TABLE IF EXISTS t1;
SET CHARACTER SET koi8r;
CREATE TABLE t1 (word VARCHAR(64) CHARACTER SET ucs2);
INSERT INTO t1 VALUES (_koi8r''), (X'2004');
SELECT hex(word) FROM t1 ORDER BY word;
hex(word)
0420
2004
DELETE FROM t1;
INSERT INTO t1 VALUES (X'042000200020'), (X'200400200020');
SELECT hex(word) FROM t1 ORDER BY word;
hex(word)
0420
2004
DROP TABLE t1;
CREATE TABLE t1 (
word VARCHAR(64),
bar INT(11) default 0,
PRIMARY KEY (word))
TYPE=MyISAM
CHARSET ucs2
COLLATE ucs2_general_ci ;
INSERT INTO t1 (word) VALUES ("aar");
INSERT INTO t1 (word) VALUES ("a");
INSERT INTO t1 (word) VALUES ("aardvar");
INSERT INTO t1 (word) VALUES ("aardvark");
INSERT INTO t1 (word) VALUES ("aardvara");
INSERT INTO t1 (word) VALUES ("aardvarz");
EXPLAIN SELECT * FROM t1 ORDER BY word;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 6 Using filesort
SELECT * FROM t1 ORDER BY word;
word bar
a 0
aar 0
aardvar 0
aardvara 0
aardvark 0
aardvarz 0
EXPLAIN SELECT word FROM t1 ORDER BY word;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 index NULL PRIMARY 128 NULL 6 Using index
SELECT word FROM t1 ORDER by word;
word
a
aar
aardvar
aardvara
aardvark
aardvarz
DROP TABLE t1;
CREATE TABLE t1 (
word VARCHAR(64) ,
PRIMARY KEY (word))
TYPE=MyISAM
CHARSET ucs2
COLLATE ucs2_general_ci;
INSERT INTO t1 (word) VALUES ("aar");
INSERT INTO t1 (word) VALUES ("a");
INSERT INTO t1 (word) VALUES ("aardvar");
INSERT INTO t1 (word) VALUES ("aardvark");
INSERT INTO t1 (word) VALUES ("aardvara");
INSERT INTO t1 (word) VALUES ("aardvarz");
EXPLAIN SELECT * FROM t1 ORDER BY WORD;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 index NULL PRIMARY 128 NULL 6 Using index
SELECT * FROM t1 ORDER BY word;
word
a
aar
aardvar
aardvara
aardvark
aardvarz
DROP TABLE t1;
CREATE TABLE t1 (
word TEXT,
bar INT(11) AUTO_INCREMENT,
PRIMARY KEY (bar))
TYPE=MyISAM
CHARSET ucs2
COLLATE ucs2_general_ci ;
INSERT INTO t1 (word) VALUES ("aar");
INSERT INTO t1 (word) VALUES ("a" );
INSERT INTO t1 (word) VALUES ("aardvar");
INSERT INTO t1 (word) VALUES ("aardvark");
INSERT INTO t1 (word) VALUES ("aardvara");
INSERT INTO t1 (word) VALUES ("aardvarz");
EXPLAIN SELECT * FROM t1 ORDER BY word;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 6 Using filesort
SELECT * FROM t1 ORDER BY word;
word bar
a 2
aar 1
aardvar 3
aardvara 5
aardvark 4
aardvarz 6
EXPLAIN SELECT word FROM t1 ORDER BY word;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 6 Using filesort
SELECT word FROM t1 ORDER BY word;
word
a
aar
aardvar
aardvara
aardvark
aardvarz
DROP TABLE t1;
mysql-test/t/ctype_ucs.test
0 → 100644
View file @
1932b40c
--
source
include
/
have_ucs2
.
inc
--
disable_warnings
DROP
TABLE
IF
EXISTS
t1
;
--
enable_warnings
SET
CHARACTER
SET
koi8r
;
#
# Check that 0x20 is only trimmed when it is
# a part of real SPACE character, not just a part
# of a multibyte sequence.
# Note, CYRILLIC LETTER ER is used as an example, which
# is stored as 0x0420 in UCS2, thus contains 0x20 in the
# low byte. The second character is THREE-PER-M, U+2004,
# which contains 0x20 in the high byte.
#
CREATE
TABLE
t1
(
word
VARCHAR
(
64
)
CHARACTER
SET
ucs2
);
INSERT
INTO
t1
VALUES
(
_koi8r
''
),
(
X
'2004'
);
SELECT
hex
(
word
)
FROM
t1
ORDER
BY
word
;
DELETE
FROM
t1
;
#
# Check that real spaces are correctly trimmed.
#
INSERT
INTO
t1
VALUES
(
X
'042000200020'
),
(
X
'200400200020'
);
SELECT
hex
(
word
)
FROM
t1
ORDER
BY
word
;
DROP
TABLE
t1
;
######################################################
#
# Bug 1264
#
# Description:
#
# When using a ucs2 table in MySQL,
# either with ucs2_general_ci or ucs2_bin collation,
# words are returned in an incorrect order when using ORDER BY
# on an _indexed_ CHAR or VARCHAR column. They are sorted with
# the longest word *first* instead of last. I.E. The word "aardvark"
# is in the results before the word "a".
#
# If there is no index for the column, the problem does not occur.
#
# Interestingly, if there is no second column, the words are returned
# in the correct order.
#
# According to EXPLAIN, it looks like when the output includes columns that
# are not part of the index sorted on, it does a filesort, which fails.
# Using a straight index yields correct results.
#
# Two fields, index
#
CREATE
TABLE
t1
(
word
VARCHAR
(
64
),
bar
INT
(
11
)
default
0
,
PRIMARY
KEY
(
word
))
TYPE
=
MyISAM
CHARSET
ucs2
COLLATE
ucs2_general_ci
;
INSERT
INTO
t1
(
word
)
VALUES
(
"aar"
);
INSERT
INTO
t1
(
word
)
VALUES
(
"a"
);
INSERT
INTO
t1
(
word
)
VALUES
(
"aardvar"
);
INSERT
INTO
t1
(
word
)
VALUES
(
"aardvark"
);
INSERT
INTO
t1
(
word
)
VALUES
(
"aardvara"
);
INSERT
INTO
t1
(
word
)
VALUES
(
"aardvarz"
);
EXPLAIN
SELECT
*
FROM
t1
ORDER
BY
word
;
SELECT
*
FROM
t1
ORDER
BY
word
;
EXPLAIN
SELECT
word
FROM
t1
ORDER
BY
word
;
SELECT
word
FROM
t1
ORDER
by
word
;
DROP
TABLE
t1
;
#
# One field, index
#
CREATE
TABLE
t1
(
word
VARCHAR
(
64
)
,
PRIMARY
KEY
(
word
))
TYPE
=
MyISAM
CHARSET
ucs2
COLLATE
ucs2_general_ci
;
INSERT
INTO
t1
(
word
)
VALUES
(
"aar"
);
INSERT
INTO
t1
(
word
)
VALUES
(
"a"
);
INSERT
INTO
t1
(
word
)
VALUES
(
"aardvar"
);
INSERT
INTO
t1
(
word
)
VALUES
(
"aardvark"
);
INSERT
INTO
t1
(
word
)
VALUES
(
"aardvara"
);
INSERT
INTO
t1
(
word
)
VALUES
(
"aardvarz"
);
EXPLAIN
SELECT
*
FROM
t1
ORDER
BY
WORD
;
SELECT
*
FROM
t1
ORDER
BY
word
;
DROP
TABLE
t1
;
#
# Two fields, no index
#
CREATE
TABLE
t1
(
word
TEXT
,
bar
INT
(
11
)
AUTO_INCREMENT
,
PRIMARY
KEY
(
bar
))
TYPE
=
MyISAM
CHARSET
ucs2
COLLATE
ucs2_general_ci
;
INSERT
INTO
t1
(
word
)
VALUES
(
"aar"
);
INSERT
INTO
t1
(
word
)
VALUES
(
"a"
);
INSERT
INTO
t1
(
word
)
VALUES
(
"aardvar"
);
INSERT
INTO
t1
(
word
)
VALUES
(
"aardvark"
);
INSERT
INTO
t1
(
word
)
VALUES
(
"aardvara"
);
INSERT
INTO
t1
(
word
)
VALUES
(
"aardvarz"
);
EXPLAIN
SELECT
*
FROM
t1
ORDER
BY
word
;
SELECT
*
FROM
t1
ORDER
BY
word
;
EXPLAIN
SELECT
word
FROM
t1
ORDER
BY
word
;
SELECT
word
FROM
t1
ORDER
BY
word
;
DROP
TABLE
t1
;
#
# END OF Bug 1264 test
#
########################################################
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment