mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge stella.local:/home2/mydev/mysql-5.0-axmrg
into stella.local:/home2/mydev/mysql-5.1-axmrg
This commit is contained in:
@ -1809,6 +1809,16 @@ CHECK TABLE t1 EXTENDED;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (
|
||||
c1 CHAR(255) CHARACTER SET UCS2 COLLATE UCS2_BIN NOT NULL,
|
||||
KEY(c1)
|
||||
) ENGINE=MyISAM;
|
||||
INSERT INTO t1 VALUES ('marshall\'s');
|
||||
INSERT INTO t1 VALUES ('marsh');
|
||||
CHECK TABLE t1 EXTENDED;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (id int NOT NULL, ref int NOT NULL, INDEX (id)) ENGINE=MyISAM;
|
||||
CREATE TABLE t2 LIKE t1;
|
||||
INSERT INTO t2 (id, ref) VALUES (1,3), (2,1), (3,2), (4,5), (4,4);
|
||||
|
@ -1152,6 +1152,19 @@ SET @@myisam_repair_threads=1;
|
||||
CHECK TABLE t1 EXTENDED;
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Bug#32705 - myisam corruption: Key in wrong position
|
||||
# at page 1024 with ucs2_bin
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
c1 CHAR(255) CHARACTER SET UCS2 COLLATE UCS2_BIN NOT NULL,
|
||||
KEY(c1)
|
||||
) ENGINE=MyISAM;
|
||||
INSERT INTO t1 VALUES ('marshall\'s');
|
||||
INSERT INTO t1 VALUES ('marsh');
|
||||
CHECK TABLE t1 EXTENDED;
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Bug#28837: MyISAM storage engine error (134) doing delete with self-join
|
||||
#
|
||||
|
@ -815,8 +815,17 @@ static void setup_key_functions(register MI_KEYDEF *keyinfo)
|
||||
keyinfo->get_key= _mi_get_pack_key;
|
||||
if (keyinfo->seg[0].flag & HA_PACK_KEY)
|
||||
{ /* Prefix compression */
|
||||
/*
|
||||
_mi_prefix_search() compares end-space against ASCII blank (' ').
|
||||
It cannot be used for character sets, that do not encode the
|
||||
blank character like ASCII does. UCS2 is an example. All
|
||||
character sets with a fixed width > 1 or a mimimum width > 1
|
||||
cannot represent blank like ASCII does. In these cases we have
|
||||
to use _mi_seq_search() for the search.
|
||||
*/
|
||||
if (!keyinfo->seg->charset || use_strnxfrm(keyinfo->seg->charset) ||
|
||||
(keyinfo->seg->flag & HA_NULL_PART))
|
||||
(keyinfo->seg->flag & HA_NULL_PART) ||
|
||||
(keyinfo->seg->charset->mbminlen > 1))
|
||||
keyinfo->bin_search=_mi_seq_search;
|
||||
else
|
||||
keyinfo->bin_search=_mi_prefix_search;
|
||||
|
Reference in New Issue
Block a user