Skip to content

Commit 6c08ff3

Browse files
committed
Merge remote-tracking branch 'origin/5.5' into 10.0
2 parents 5f2a67a + 170b43c commit 6c08ff3

File tree

9 files changed

+164
-3
lines changed

9 files changed

+164
-3
lines changed

mysql-test/r/auto_increment.result

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -537,3 +537,32 @@ pk
537537
-5
538538
1
539539
drop table t1;
540+
#
541+
# Start of 5.5 tests
542+
#
543+
#
544+
# MDEV-16534 PPC64: Unexpected error with a negative values into auto-increment columns in HEAP, MyISAM, ARIA
545+
#
546+
CREATE TABLE t1 (
547+
id TINYINT NOT NULL AUTO_INCREMENT,
548+
name CHAR(30) NOT NULL,
549+
PRIMARY KEY (id)
550+
) ENGINE=MyISAM;
551+
SHOW CREATE TABLE t1;
552+
Table Create Table
553+
t1 CREATE TABLE `t1` (
554+
`id` tinyint(4) NOT NULL AUTO_INCREMENT,
555+
`name` char(30) NOT NULL,
556+
PRIMARY KEY (`id`)
557+
) ENGINE=MyISAM DEFAULT CHARSET=latin1
558+
INSERT INTO t1 (name) VALUES ('dog');
559+
UPDATE t1 SET id=-1 WHERE id=1;
560+
INSERT INTO t1 (name) VALUES ('cat');
561+
SELECT * FROM t1;
562+
id name
563+
-1 dog
564+
2 cat
565+
DROP TABLE t1;
566+
#
567+
# End of 5.5 tests
568+
#

mysql-test/suite/heap/heap_auto_increment.result

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,32 @@ _rowid _rowid skey sval
3939
1 1 1 hello
4040
2 2 2 hey
4141
drop table t1;
42+
#
43+
# Start of 5.5 tests
44+
#
45+
#
46+
# MDEV-16534 PPC64: Unexpected error with a negative values into auto-increment columns in HEAP, MyISAM, ARIA
47+
#
48+
CREATE TABLE t1 (
49+
id TINYINT NOT NULL AUTO_INCREMENT,
50+
name CHAR(30) NOT NULL,
51+
PRIMARY KEY (id)
52+
) ENGINE=MEMORY;
53+
SHOW CREATE TABLE t1;
54+
Table Create Table
55+
t1 CREATE TABLE `t1` (
56+
`id` tinyint(4) NOT NULL AUTO_INCREMENT,
57+
`name` char(30) NOT NULL,
58+
PRIMARY KEY (`id`)
59+
) ENGINE=MEMORY DEFAULT CHARSET=latin1
60+
INSERT INTO t1 (name) VALUES ('dog');
61+
UPDATE t1 SET id=-1 WHERE id=1;
62+
INSERT INTO t1 (name) VALUES ('cat');
63+
SELECT * FROM t1;
64+
id name
65+
-1 dog
66+
2 cat
67+
DROP TABLE t1;
68+
#
69+
# End of 5.5 tests
70+
#

mysql-test/suite/heap/heap_auto_increment.test

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,28 @@ select _rowid,t1._rowid,skey,sval from t1;
3333
drop table t1;
3434

3535
# End of 4.1 tests
36+
37+
--echo #
38+
--echo # Start of 5.5 tests
39+
--echo #
40+
41+
--echo #
42+
--echo # MDEV-16534 PPC64: Unexpected error with a negative values into auto-increment columns in HEAP, MyISAM, ARIA
43+
--echo #
44+
45+
CREATE TABLE t1 (
46+
id TINYINT NOT NULL AUTO_INCREMENT,
47+
name CHAR(30) NOT NULL,
48+
PRIMARY KEY (id)
49+
) ENGINE=MEMORY;
50+
SHOW CREATE TABLE t1;
51+
INSERT INTO t1 (name) VALUES ('dog');
52+
UPDATE t1 SET id=-1 WHERE id=1;
53+
INSERT INTO t1 (name) VALUES ('cat');
54+
SELECT * FROM t1;
55+
DROP TABLE t1;
56+
57+
--echo #
58+
--echo # End of 5.5 tests
59+
--echo #
60+

mysql-test/suite/maria/maria.result

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2707,6 +2707,35 @@ INSERT INTO t1 (b) VALUES ('');
27072707
ALTER TABLE t1 ENABLE KEYS;
27082708
DROP TABLE t1;
27092709
#
2710+
# Start of 5.5 tests
2711+
#
2712+
#
2713+
# MDEV-16534 PPC64: Unexpected error with a negative values into auto-increment columns in HEAP, MyISAM, ARIA
2714+
#
2715+
CREATE TABLE t1 (
2716+
id TINYINT NOT NULL AUTO_INCREMENT,
2717+
name CHAR(30) NOT NULL,
2718+
PRIMARY KEY (id)
2719+
) ENGINE=ARIA;
2720+
SHOW CREATE TABLE t1;
2721+
Table Create Table
2722+
t1 CREATE TABLE `t1` (
2723+
`id` tinyint(4) NOT NULL AUTO_INCREMENT,
2724+
`name` char(30) NOT NULL,
2725+
PRIMARY KEY (`id`)
2726+
) ENGINE=Aria DEFAULT CHARSET=latin1 PAGE_CHECKSUM=0
2727+
INSERT INTO t1 (name) VALUES ('dog');
2728+
UPDATE t1 SET id=-1 WHERE id=1;
2729+
INSERT INTO t1 (name) VALUES ('cat');
2730+
SELECT * FROM t1;
2731+
id name
2732+
-1 dog
2733+
2 cat
2734+
DROP TABLE t1;
2735+
#
2736+
# End of 5.5 tests
2737+
#
2738+
#
27102739
# BUG#47444 - --myisam_repair_threads > 1 can result in all index
27112740
# cardinalities=1
27122741
#

mysql-test/suite/maria/maria.test

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1982,6 +1982,30 @@ ALTER TABLE t1 ENABLE KEYS;
19821982
# Cleanup
19831983
DROP TABLE t1;
19841984

1985+
--echo #
1986+
--echo # Start of 5.5 tests
1987+
--echo #
1988+
1989+
--echo #
1990+
--echo # MDEV-16534 PPC64: Unexpected error with a negative values into auto-increment columns in HEAP, MyISAM, ARIA
1991+
--echo #
1992+
1993+
CREATE TABLE t1 (
1994+
id TINYINT NOT NULL AUTO_INCREMENT,
1995+
name CHAR(30) NOT NULL,
1996+
PRIMARY KEY (id)
1997+
) ENGINE=ARIA;
1998+
SHOW CREATE TABLE t1;
1999+
INSERT INTO t1 (name) VALUES ('dog');
2000+
UPDATE t1 SET id=-1 WHERE id=1;
2001+
INSERT INTO t1 (name) VALUES ('cat');
2002+
SELECT * FROM t1;
2003+
DROP TABLE t1;
2004+
2005+
--echo #
2006+
--echo # End of 5.5 tests
2007+
--echo #
2008+
19852009
--echo #
19862010
--echo # BUG#47444 - --myisam_repair_threads > 1 can result in all index
19872011
--echo # cardinalities=1

mysql-test/t/auto_increment.test

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -397,3 +397,28 @@ insert into t1 values(null);
397397
select last_insert_id();
398398
select * from t1;
399399
drop table t1;
400+
401+
402+
--echo #
403+
--echo # Start of 5.5 tests
404+
--echo #
405+
406+
--echo #
407+
--echo # MDEV-16534 PPC64: Unexpected error with a negative values into auto-increment columns in HEAP, MyISAM, ARIA
408+
--echo #
409+
410+
CREATE TABLE t1 (
411+
id TINYINT NOT NULL AUTO_INCREMENT,
412+
name CHAR(30) NOT NULL,
413+
PRIMARY KEY (id)
414+
) ENGINE=MyISAM;
415+
SHOW CREATE TABLE t1;
416+
INSERT INTO t1 (name) VALUES ('dog');
417+
UPDATE t1 SET id=-1 WHERE id=1;
418+
INSERT INTO t1 (name) VALUES ('cat');
419+
SELECT * FROM t1;
420+
DROP TABLE t1;
421+
422+
--echo #
423+
--echo # End of 5.5 tests
424+
--echo #

storage/heap/hp_hash.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1022,7 +1022,7 @@ void heap_update_auto_increment(HP_INFO *info, const uchar *record)
10221022

10231023
switch (info->s->auto_key_type) {
10241024
case HA_KEYTYPE_INT8:
1025-
s_value= (longlong) *(char*)key;
1025+
s_value= (longlong) *(const signed char*) key;
10261026
break;
10271027
case HA_KEYTYPE_BINARY:
10281028
value=(ulonglong) *(uchar*) key;

storage/maria/ma_key.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -728,7 +728,7 @@ ulonglong ma_retrieve_auto_increment(const uchar *key, uint8 key_type)
728728

729729
switch (key_type) {
730730
case HA_KEYTYPE_INT8:
731-
s_value= (longlong) *(const char*)key;
731+
s_value= (longlong) *(const signed char*) key;
732732
break;
733733
case HA_KEYTYPE_BINARY:
734734
value=(ulonglong) *key;

storage/myisam/mi_key.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -553,7 +553,7 @@ ulonglong retrieve_auto_increment(MI_INFO *info,const uchar *record)
553553

554554
switch (keyseg->type) {
555555
case HA_KEYTYPE_INT8:
556-
s_value= (longlong) *(char*)key;
556+
s_value= (longlong) *(const signed char*) key;
557557
break;
558558
case HA_KEYTYPE_BINARY:
559559
value=(ulonglong) *(uchar*) key;

0 commit comments

Comments
 (0)