mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-32022 ERROR 1054 (42S22): Unknown column 'X' in 'NEW' in trigger
add missing do_get_copy/do_build_clone
This commit is contained in:
@ -2448,6 +2448,14 @@ SELECT * FROM t1;
|
|||||||
a b total
|
a b total
|
||||||
10 20 30
|
10 20 30
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
#
|
|
||||||
# End of 10.3 tests
|
# End of 10.3 tests
|
||||||
#
|
#
|
||||||
|
# MDEV-32022 ERROR 1054 (42S22): Unknown column 'X' in 'NEW' in trigger
|
||||||
|
#
|
||||||
|
create table t1 (m set('sms') not null);
|
||||||
|
create table t2 (i int);
|
||||||
|
create table t3 (j int);
|
||||||
|
create trigger t1 after insert on t1 for each row insert ignore into t2 select t3.j from t3 join (select 'sms' as method) m on find_in_set(m.method, new.m);
|
||||||
|
insert into t1 values ('sms');
|
||||||
|
drop table t1, t2, t3;
|
||||||
|
# End of 10.5 tests
|
||||||
|
@ -2784,6 +2784,16 @@ INSERT INTO t1 (a,b) VALUES (10, 20);
|
|||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
--echo #
|
|
||||||
--echo # End of 10.3 tests
|
--echo # End of 10.3 tests
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
|
--echo # MDEV-32022 ERROR 1054 (42S22): Unknown column 'X' in 'NEW' in trigger
|
||||||
|
--echo #
|
||||||
|
create table t1 (m set('sms') not null);
|
||||||
|
create table t2 (i int);
|
||||||
|
create table t3 (j int);
|
||||||
|
create trigger t1 after insert on t1 for each row insert ignore into t2 select t3.j from t3 join (select 'sms' as method) m on find_in_set(m.method, new.m);
|
||||||
|
insert into t1 values ('sms');
|
||||||
|
drop table t1, t2, t3;
|
||||||
|
|
||||||
|
--echo # End of 10.5 tests
|
||||||
|
@ -7871,6 +7871,7 @@ static
|
|||||||
Item *find_producing_item(Item *item, st_select_lex *sel)
|
Item *find_producing_item(Item *item, st_select_lex *sel)
|
||||||
{
|
{
|
||||||
DBUG_ASSERT(item->type() == Item::FIELD_ITEM ||
|
DBUG_ASSERT(item->type() == Item::FIELD_ITEM ||
|
||||||
|
item->type() == Item::TRIGGER_FIELD_ITEM ||
|
||||||
(item->type() == Item::REF_ITEM &&
|
(item->type() == Item::REF_ITEM &&
|
||||||
((Item_ref *) item)->ref_type() == Item_ref::VIEW_REF));
|
((Item_ref *) item)->ref_type() == Item_ref::VIEW_REF));
|
||||||
Item_field *field_item= NULL;
|
Item_field *field_item= NULL;
|
||||||
|
@ -6947,6 +6947,9 @@ public:
|
|||||||
Item *copy_or_same(THD *) override { return this; }
|
Item *copy_or_same(THD *) override { return this; }
|
||||||
Item *get_tmp_table_item(THD *thd) override { return copy_or_same(thd); }
|
Item *get_tmp_table_item(THD *thd) override { return copy_or_same(thd); }
|
||||||
void cleanup() override;
|
void cleanup() override;
|
||||||
|
Item *do_get_copy(THD *thd) const override
|
||||||
|
{ return get_item_copy<Item_trigger_field>(thd, this); }
|
||||||
|
Item *do_build_clone(THD *thd) const override { return get_copy(thd); }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void set_required_privilege(bool rw) override;
|
void set_required_privilege(bool rw) override;
|
||||||
|
Reference in New Issue
Block a user