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

Method write_row

storage/perfschema/table_setup_objects.cc:85–149  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

83}
84
85int table_setup_objects::write_row(TABLE *table, const unsigned char *buf,
86 Field **fields)
87{
88 int result;
89 Field *f;
90 enum_object_type object_type= OBJECT_TYPE_TABLE;
91 String object_schema_data("%", 1, &my_charset_utf8mb3_bin);
92 String object_name_data("%", 1, &my_charset_utf8mb3_bin);
93 String *object_schema= &object_schema_data;
94 String *object_name= &object_name_data;
95 enum_yes_no enabled_value= ENUM_YES;
96 enum_yes_no timed_value= ENUM_YES;
97 bool enabled= true;
98 bool timed= true;
99
100 for (; (f= *fields) ; fields++)
101 {
102 if (bitmap_is_set(table->write_set, f->field_index))
103 {
104 switch(f->field_index)
105 {
106 case 0: /* OBJECT_TYPE */
107 object_type= (enum_object_type) get_field_enum(f);
108 break;
109 case 1: /* OBJECT_SCHEMA */
110 object_schema= get_field_varchar_utf8(f, &object_schema_data);
111 break;
112 case 2: /* OBJECT_NAME */
113 object_name= get_field_varchar_utf8(f, &object_name_data);
114 break;
115 case 3: /* ENABLED */
116 enabled_value= (enum_yes_no) get_field_enum(f);
117 break;
118 case 4: /* TIMED */
119 timed_value= (enum_yes_no) get_field_enum(f);
120 break;
121 default:
122 assert(false);
123 }
124 }
125 }
126
127 /* Reject illegal enum values in OBJECT_TYPE */
128 if (object_type < FIRST_OBJECT_TYPE ||
129 object_type > LAST_OBJECT_TYPE ||
130 object_type == OBJECT_TYPE_TEMPORARY_TABLE)
131 return HA_ERR_NO_REFERENCED_ROW;
132
133 /* Reject illegal enum values in ENABLED */
134 if ((enabled_value != ENUM_YES) && (enabled_value != ENUM_NO))
135 return HA_ERR_NO_REFERENCED_ROW;
136
137 /* Reject illegal enum values in TIMED */
138 if ((timed_value != ENUM_YES) && (timed_value != ENUM_NO))
139 return HA_ERR_NO_REFERENCED_ROW;
140
141 enabled= (enabled_value == ENUM_YES) ? true : false;
142 timed= (timed_value == ENUM_YES) ? true : false;

Callers

nothing calls this directly

Calls 3

bitmap_is_setFunction · 0.85
insert_setup_objectFunction · 0.85
update_derived_flagsFunction · 0.85

Tested by

no test coverage detected