mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-21017: Assertion `!is_set() || (m_status == DA_OK_BULK && is_bulk_op())'
failed or late ER_PERIOD_FIELD_WRONG_ATTRIBUTES upon attempt to create existing table Analysis: Error state is not stored when field is checked in Table_period_info::check_field() Fix: Store error state by setting res to true.
This commit is contained in:
@ -2012,3 +2012,18 @@ CREATE TABLE t1 ( id1 INT, id2 INT, CONSTRAINT `foo` PRIMARY KEY (id1), CONSTRAI
|
|||||||
Warnings:
|
Warnings:
|
||||||
Warning 1280 Name 'foo' ignored for PRIMARY key.
|
Warning 1280 Name 'foo' ignored for PRIMARY key.
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
|
# 10.4 Test
|
||||||
|
#
|
||||||
|
# MDEV-21017: Assertion `!is_set() || (m_status == DA_OK_BULK &&
|
||||||
|
# is_bulk_op())' failed or late ER_PERIOD_FIELD_WRONG_ATTRIBUTES
|
||||||
|
# upon attempt to create existing table
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (a INT);
|
||||||
|
LOCK TABLE t1 WRITE;
|
||||||
|
CREATE TABLE IF NOT EXISTS t1 (s DATE GENERATED ALWAYS AS ('2000-01-01') STORED,
|
||||||
|
e DATE, PERIOD FOR app(s,e));
|
||||||
|
ERROR HY000: Period field `s` cannot be GENERATED ALWAYS AS
|
||||||
|
UNLOCK TABLES;
|
||||||
|
DROP TABLE t1;
|
||||||
|
# End of 10.4 Test
|
||||||
|
@ -1873,3 +1873,21 @@ drop table t1;
|
|||||||
CREATE TABLE t1 ( id1 INT, id2 INT, CONSTRAINT `foo` PRIMARY KEY (id1), CONSTRAINT `bar` UNIQUE KEY(id2));
|
CREATE TABLE t1 ( id1 INT, id2 INT, CONSTRAINT `foo` PRIMARY KEY (id1), CONSTRAINT `bar` UNIQUE KEY(id2));
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # 10.4 Test
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-21017: Assertion `!is_set() || (m_status == DA_OK_BULK &&
|
||||||
|
--echo # is_bulk_op())' failed or late ER_PERIOD_FIELD_WRONG_ATTRIBUTES
|
||||||
|
--echo # upon attempt to create existing table
|
||||||
|
--echo #
|
||||||
|
CREATE TABLE t1 (a INT);
|
||||||
|
LOCK TABLE t1 WRITE;
|
||||||
|
|
||||||
|
--error ER_PERIOD_FIELD_WRONG_ATTRIBUTES
|
||||||
|
CREATE TABLE IF NOT EXISTS t1 (s DATE GENERATED ALWAYS AS ('2000-01-01') STORED,
|
||||||
|
e DATE, PERIOD FOR app(s,e));
|
||||||
|
|
||||||
|
UNLOCK TABLES;
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
--echo # End of 10.4 Test
|
||||||
|
@ -7856,6 +7856,7 @@ bool Table_period_info::check_field(const Create_field* f,
|
|||||||
{
|
{
|
||||||
my_error(ER_PERIOD_FIELD_WRONG_ATTRIBUTES, MYF(0),
|
my_error(ER_PERIOD_FIELD_WRONG_ATTRIBUTES, MYF(0),
|
||||||
f->field_name.str, "GENERATED ALWAYS AS");
|
f->field_name.str, "GENERATED ALWAYS AS");
|
||||||
|
res= true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
|
Reference in New Issue
Block a user