mirror of
https://github.com/MariaDB/server.git
synced 2025-01-29 18:20:07 +01:00
Merge bk-internal.mysql.com:/home/bk/mysql-5.0-engines
into chilla.local:/home/mydev/mysql-5.0-bug24985 sql/ha_myisam.cc: Auto merged mysql-test/r/heap_btree.result: Bug#24985 - UTF8 ENUM primary key on MEMORY using BTREE causes incorrect duplicate entries Manual merge mysql-test/t/heap_btree.test: Bug#24985 - UTF8 ENUM primary key on MEMORY using BTREE causes incorrect duplicate entries Manual merge
This commit is contained in:
commit
c4b440aaf0
3 changed files with 33 additions and 1 deletions
|
@ -295,6 +295,18 @@ A 1
|
|||
B 0
|
||||
C 0
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (
|
||||
c1 ENUM('1', '2'),
|
||||
UNIQUE USING BTREE(c1)
|
||||
) ENGINE= MEMORY DEFAULT CHARSET= utf8;
|
||||
INSERT INTO t1 VALUES('1'), ('2');
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (
|
||||
c1 SET('1', '2'),
|
||||
UNIQUE USING BTREE(c1)
|
||||
) ENGINE= MEMORY DEFAULT CHARSET= utf8;
|
||||
INSERT INTO t1 VALUES('1'), ('2');
|
||||
DROP TABLE t1;
|
||||
End of 4.1 tests
|
||||
CREATE TABLE t1(val INT, KEY USING BTREE(val)) ENGINE=memory;
|
||||
INSERT INTO t1 VALUES(0);
|
||||
|
|
|
@ -196,6 +196,23 @@ UPDATE t1 SET c2= c2 + 1 WHERE c1 = 'A';
|
|||
SELECT * FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Bug#24985 - UTF8 ENUM primary key on MEMORY using BTREE
|
||||
# causes incorrect duplicate entries
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
c1 ENUM('1', '2'),
|
||||
UNIQUE USING BTREE(c1)
|
||||
) ENGINE= MEMORY DEFAULT CHARSET= utf8;
|
||||
INSERT INTO t1 VALUES('1'), ('2');
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (
|
||||
c1 SET('1', '2'),
|
||||
UNIQUE USING BTREE(c1)
|
||||
) ENGINE= MEMORY DEFAULT CHARSET= utf8;
|
||||
INSERT INTO t1 VALUES('1'), ('2');
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo End of 4.1 tests
|
||||
|
||||
#
|
||||
|
|
|
@ -604,7 +604,10 @@ int ha_heap::create(const char *name, TABLE *table_arg,
|
|||
seg->length= (uint) key_part->length;
|
||||
seg->flag= key_part->key_part_flag;
|
||||
|
||||
seg->charset= field->charset();
|
||||
if (field->flags & (ENUM_FLAG | SET_FLAG))
|
||||
seg->charset= &my_charset_bin;
|
||||
else
|
||||
seg->charset= field->charset();
|
||||
if (field->null_ptr)
|
||||
{
|
||||
seg->null_bit= field->null_bit;
|
||||
|
|
Loading…
Add table
Reference in a new issue