This is a minimal example that triggers the error
CREATE TABLE A (
id bigint NOT NULL AUTO_INCREMENT PRIMARY KEY
);
CREATE TABLE B (
what tinyint NOT NULL,
a bigint NOT NULL,
CONSTRAINT x FOREIGN KEY (a) REFERENCES A(id),
CONSTRAINT y CHECK (what > 0)
);
SELECT b.a FROM B b;
ALTER TABLE B DROP CONSTRAINT x;
When i run this in a fresh MariaDB instance (docker mariadb:10.3.28) everything works fine.
When MariaDB 10.3.29 was released the query suddenly broke. So, when i run this in a fresh MariaDB instance (docker mariadb:10.3.29) i get the following error message for the last statement:
[42S22][1054] (conn=8) Unknown column '`db`.`b`.`what`' in 'CHECK'
Some weird observations:
- if i delete the
y
check and add it after droppingx
everything works - if i remove the
SELECT
everything works - the
b
from the error message changes with the table alias from theSELECT
statement - running the last statement again shows the same error
- the error message makes no sense at all
So my question: what's wrong with my SQL?
what
what
) or insertion into non-existent table fixes (insertion into A - not fixes).