Details
-
Bug
-
Status: Closed (View Workflow)
-
Blocker
-
Resolution: Fixed
-
10.4.3
Description
The following test fails for ROW_FORMAT=REDUNDANT:
--source include/have_innodb.inc
|
--source include/innodb_row_format.inc
|
CREATE TABLE t1 (a SERIAL, b INT, c TINYINT UNIQUE) ENGINE=InnoDB; |
INSERT INTO t1 (c) VALUES(1),(2),(3); |
--enable_info
|
ALTER TABLE t1 MODIFY c BIGINT; |
--disable_info
|
UPDATE t1 SET b=1 WHERE c=2; |
UPDATE t1 SET c=4 WHERE a=3; |
UPDATE t1 SET b=2 WHERE c>3; |
--error ER_DUP_ENTRY
|
UPDATE t1 SET c=c+1; |
SELECT * FROM t1; |
DROP TABLE t1; |
It fails to flag the duplicate key error in the UPDATE, and the results are wrong. The most likely explanation is that row_build() is not (sign-)extending the integer column c to the correct size. For example, the value 0x83 should be properly sign-extended to 0x8000000000000003.
Attachments
Issue Links
- is caused by
-
MDEV-15563 Instant failure-free data type conversions
- Closed
- relates to
-
MDEV-17520 Instant ALTER TABLE for failure-free column type changes
- Stalled
-
MDEV-22771 Assertion `fields[i].same(instant.fields[i])' failed in dict_index_t::instant_add_field
- Closed