mirror of
https://github.com/MariaDB/server.git
synced 2025-12-24 11:21:21 +03:00
MDEV-21148: Assertion index->n_core_fields + n_add >= index->n_fields
Revert part of commit 6cedb671e9
because it turns out to be theoretically impossible to parse a
ROW_FORMAT=COMPACT or ROW_FORMAT=DYNAMIC metadata record where
the variable-length fields in the PRIMARY KEY have been written
as nonempty strings.
This commit is contained in:
@@ -318,8 +318,8 @@
|
||||
FROM information_schema.global_status
|
||||
WHERE variable_name = 'innodb_instant_alter_column';
|
||||
instants
|
||||
-187
|
||||
+189
|
||||
-193
|
||||
+195
|
||||
SET GLOBAL innodb_purge_rseg_truncate_frequency= @saved_frequency;
|
||||
#
|
||||
# MDEV-18266: Changing an index comment unnecessarily rebuilds index
|
||||
|
||||
@@ -912,6 +912,19 @@ SELECT * FROM t1;
|
||||
b a vb
|
||||
NULL barf NULL
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT, b TEXT, PRIMARY KEY(b(9))) ENGINE=InnoDB ROW_FORMAT=REDUNDANT;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT FIRST;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT GENERATED ALWAYS AS (SUBSTR(b,1,499)) FIRST;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1(a CHAR(5), b INT, c CHAR(1), d CHAR(1), PRIMARY KEY(a,b))
|
||||
DEFAULT CHARACTER SET utf8 ENGINE=InnoDB ROW_FORMAT=REDUNDANT;
|
||||
INSERT INTO t1 SET a='fubar',b=42;
|
||||
ALTER TABLE t1 DROP c, DROP d, ALGORITHM=INSTANT;
|
||||
ALTER TABLE t1 ADD vb INT AS (b);
|
||||
SELECT * FROM t1;
|
||||
a b vb
|
||||
fubar 42 42
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1
|
||||
(id INT PRIMARY KEY, c2 INT UNIQUE,
|
||||
c3 POINT NOT NULL DEFAULT ST_GeomFromText('POINT(3 4)'),
|
||||
@@ -1769,6 +1782,19 @@ SELECT * FROM t1;
|
||||
b a vb
|
||||
NULL barf NULL
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT, b TEXT, PRIMARY KEY(b(9))) ENGINE=InnoDB ROW_FORMAT=COMPACT;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT FIRST;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT GENERATED ALWAYS AS (SUBSTR(b,1,499)) FIRST;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1(a CHAR(5), b INT, c CHAR(1), d CHAR(1), PRIMARY KEY(a,b))
|
||||
DEFAULT CHARACTER SET utf8 ENGINE=InnoDB ROW_FORMAT=COMPACT;
|
||||
INSERT INTO t1 SET a='fubar',b=42;
|
||||
ALTER TABLE t1 DROP c, DROP d, ALGORITHM=INSTANT;
|
||||
ALTER TABLE t1 ADD vb INT AS (b);
|
||||
SELECT * FROM t1;
|
||||
a b vb
|
||||
fubar 42 42
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1
|
||||
(id INT PRIMARY KEY, c2 INT UNIQUE,
|
||||
c3 POINT NOT NULL DEFAULT ST_GeomFromText('POINT(3 4)'),
|
||||
@@ -2626,12 +2652,25 @@ SELECT * FROM t1;
|
||||
b a vb
|
||||
NULL barf NULL
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT, b TEXT, PRIMARY KEY(b(9))) ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
|
||||
ALTER TABLE t1 ADD COLUMN c TEXT FIRST;
|
||||
ALTER TABLE t1 ADD COLUMN d TEXT GENERATED ALWAYS AS (SUBSTR(b,1,499)) FIRST;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1(a CHAR(5), b INT, c CHAR(1), d CHAR(1), PRIMARY KEY(a,b))
|
||||
DEFAULT CHARACTER SET utf8 ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
|
||||
INSERT INTO t1 SET a='fubar',b=42;
|
||||
ALTER TABLE t1 DROP c, DROP d, ALGORITHM=INSTANT;
|
||||
ALTER TABLE t1 ADD vb INT AS (b);
|
||||
SELECT * FROM t1;
|
||||
a b vb
|
||||
fubar 42 42
|
||||
DROP TABLE t1;
|
||||
disconnect analyze;
|
||||
SELECT variable_value-@old_instant instants
|
||||
FROM information_schema.global_status
|
||||
WHERE variable_name = 'innodb_instant_alter_column';
|
||||
instants
|
||||
187
|
||||
193
|
||||
SET GLOBAL innodb_purge_rseg_truncate_frequency= @saved_frequency;
|
||||
#
|
||||
# MDEV-18266: Changing an index comment unnecessarily rebuilds index
|
||||
|
||||
Reference in New Issue
Block a user