summaryrefslogtreecommitdiff
path: root/sql/sql_trigger.h
diff options
context:
space:
mode:
authorunknown <dlenev@mysql.com>2006-07-02 02:12:53 +0400
committerunknown <dlenev@mysql.com>2006-07-02 02:12:53 +0400
commit44386279a5ede13b89653b2f968d4cdb0c12a847 (patch)
tree6997be64d5327fe58acf2e694155bdcea954f13c /sql/sql_trigger.h
parent50a8fba8fcfcd422dd9fba807866ed41aab4e265 (diff)
parentae9724cce160c8d8351df3e2a232cc848b5c6fb8 (diff)
downloadmariadb-git-44386279a5ede13b89653b2f968d4cdb0c12a847.tar.gz
Merge mysql.com:/home/dlenev/mysql-5.0-bg18437-3
into mysql.com:/home/dlenev/mysql-5.1-bg18437 sql/mysql_priv.h: Auto merged sql/sql_load.cc: Auto merged sql/sql_table.cc: Auto merged sql/sql_trigger.cc: Auto merged include/my_base.h: Manual merge. mysql-test/r/federated.result: Manual merge. mysql-test/r/ndb_replace.result: Manual merge. mysql-test/t/federated.test: Manual merge. sql/ha_ndbcluster.cc: Manual merge. sql/item.cc: Manual merge. sql/sql_delete.cc: Manual merge. sql/sql_insert.cc: Manual merge. sql/sql_parse.cc: Manual merge. sql/sql_trigger.h: Manual merge. sql/sql_update.cc: Manual merge.
Diffstat (limited to 'sql/sql_trigger.h')
-rw-r--r--sql/sql_trigger.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/sql/sql_trigger.h b/sql/sql_trigger.h
index bddfd8c1f0c..55744dc4d2c 100644
--- a/sql/sql_trigger.h
+++ b/sql/sql_trigger.h
@@ -26,6 +26,11 @@ class Table_triggers_list: public Sql_alloc
/* Triggers as SPs grouped by event, action_time */
sp_head *bodies[TRG_EVENT_MAX][TRG_ACTION_MAX];
/*
+ Heads of the lists linking items for all fields used in triggers
+ grouped by event and action_time.
+ */
+ Item_trigger_field *trigger_fields[TRG_EVENT_MAX][TRG_ACTION_MAX];
+ /*
Copy of TABLE::Field array with field pointers set to TABLE::record[1]
buffer instead of TABLE::record[0] (used for OLD values in on UPDATE
trigger and DELETE trigger when it is called for REPLACE).
@@ -82,6 +87,7 @@ public:
record1_field(0), table(table_arg)
{
bzero((char *)bodies, sizeof(bodies));
+ bzero((char *)trigger_fields, sizeof(trigger_fields));
bzero((char *)&subject_table_grants, sizeof(subject_table_grants));
}
~Table_triggers_list();
@@ -119,6 +125,8 @@ public:
void set_table(TABLE *new_table);
+ void mark_fields_used(THD *thd, trg_event_type event);
+
friend class Item_trigger_field;
friend int sp_cache_routines_and_add_tables_for_triggers(THD *thd, LEX *lex,
TABLE_LIST *table);