mirror of
https://github.com/MariaDB/server.git
synced 2025-07-27 18:02:13 +03:00
MDEV-21147 Assertion `marked_for_read()' upon UPDATE on versioned table via view
Unit prepare prematurely fixed field which must be fixed via setup_conds() to correctly update table->covering_keys. Call vers_setup_conds() directly instead, because actually everything else is not needed.
This commit is contained in:
@ -295,5 +295,17 @@ primary key (pk)
|
||||
create or replace view v1 as select * from t1;
|
||||
insert into t1 values (1, null, 'd') , (2, null, 'i') ;
|
||||
update v1 set a= null where b = '';
|
||||
create or replace table t1 (id int, k int, primary key (id)) engine=innodb with system versioning;
|
||||
insert into t1 values (1,1),(2,2);
|
||||
create or replace view v1 as select * from t1;
|
||||
update v1 set id= 2 where k = 0;
|
||||
create or replace table t1 (a int) with system versioning;
|
||||
create or replace view v1 as select * from t1;
|
||||
create or replace procedure sp() update v1 set xx = 1;
|
||||
call sp;
|
||||
ERROR 42S22: Unknown column 'xx' in 'field list'
|
||||
call sp;
|
||||
ERROR 42S22: Unknown column 'xx' in 'field list'
|
||||
drop procedure sp;
|
||||
drop view v1;
|
||||
drop table t1;
|
||||
|
@ -214,7 +214,21 @@ create or replace view v1 as select * from t1;
|
||||
insert into t1 values (1, null, 'd') , (2, null, 'i') ;
|
||||
update v1 set a= null where b = '';
|
||||
|
||||
create or replace table t1 (id int, k int, primary key (id)) engine=innodb with system versioning;
|
||||
insert into t1 values (1,1),(2,2);
|
||||
create or replace view v1 as select * from t1;
|
||||
update v1 set id= 2 where k = 0;
|
||||
|
||||
create or replace table t1 (a int) with system versioning;
|
||||
create or replace view v1 as select * from t1;
|
||||
create or replace procedure sp() update v1 set xx = 1;
|
||||
--error ER_BAD_FIELD_ERROR
|
||||
call sp;
|
||||
--error ER_BAD_FIELD_ERROR
|
||||
call sp;
|
||||
|
||||
# cleanup
|
||||
drop procedure sp;
|
||||
drop view v1;
|
||||
drop table t1;
|
||||
|
||||
|
Reference in New Issue
Block a user