summaryrefslogtreecommitdiff
path: root/sql/sql_trigger.h
diff options
context:
space:
mode:
authordlenev@mysql.com <>2006-07-02 02:12:53 +0400
committerdlenev@mysql.com <>2006-07-02 02:12:53 +0400
commiteb3ae6eb79f90e1d133a30fe52473de70077a772 (patch)
tree6997be64d5327fe58acf2e694155bdcea954f13c /sql/sql_trigger.h
parenta3deb94518b54d6319a0c5ac7ea1783b50fe170d (diff)
parentd4450e66964e14ac85bc40c567a510dd86353f60 (diff)
downloadmariadb-git-eb3ae6eb79f90e1d133a30fe52473de70077a772.tar.gz
Merge mysql.com:/home/dlenev/mysql-5.0-bg18437-3
into mysql.com:/home/dlenev/mysql-5.1-bg18437
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);