MCPcopy Create free account
hub / github.com/MariaDB/server / mark_fields_used

Method mark_fields_used

sql/sql_trigger.cc:2973–3010  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2971*/
2972
2973void Table_triggers_list::mark_fields_used(trg_event_type event)
2974{
2975 int action_time;
2976 DBUG_ENTER("Table_triggers_list::mark_fields_used");
2977
2978 for (action_time= 0; action_time < (int)TRG_ACTION_MAX; action_time++)
2979 {
2980 for (Trigger *trigger= get_trigger(event,action_time);
2981 trigger ;
2982 trigger= trigger->next[event])
2983 {
2984 /*
2985 Skip a trigger that was parsed with an error.
2986 */
2987 if (trigger->body == nullptr)
2988 continue;
2989
2990 (void)iterate_trigger_fields_and_run_func(
2991 trigger->body->m_trg_table_fields,
2992 [this] (Item_trigger_field* trg_field)
2993 {
2994 /* We cannot mark fields which does not present in table. */
2995 if (trg_field->field_idx != NO_CACHED_FIELD_INDEX)
2996 {
2997 DBUG_PRINT("info", ("marking field: %u", (uint) trg_field->field_idx));
2998 if (trg_field->get_settable_routine_parameter())
2999 bitmap_set_bit(trigger_table->write_set, trg_field->field_idx);
3000 trigger_table->mark_column_with_deps(
3001 trigger_table->field[trg_field->field_idx]);
3002 }
3003 return false;
3004 }
3005 );
3006 }
3007 }
3008 trigger_table->file->column_bitmaps_signal(false);
3009 DBUG_VOID_RETURN;
3010}
3011
3012
3013/**

Calls 5

bitmap_set_bitFunction · 0.85
mark_column_with_depsMethod · 0.80
column_bitmaps_signalMethod · 0.45

Tested by

no test coverage detected