| 2218 | */ |
| 2219 | |
| 2220 | bool insert_view_fields(THD *thd, List<Item> *list, TABLE_LIST *view) |
| 2221 | { |
| 2222 | Field_translator *trans_end; |
| 2223 | Field_translator *trans; |
| 2224 | DBUG_ENTER("insert_view_fields"); |
| 2225 | |
| 2226 | if (!(trans= view->field_translation)) |
| 2227 | DBUG_RETURN(FALSE); |
| 2228 | trans_end= view->field_translation_end; |
| 2229 | |
| 2230 | for (Field_translator *entry= trans; entry < trans_end; entry++) |
| 2231 | { |
| 2232 | Item_field *fld; |
| 2233 | if ((fld= entry->item->field_for_view_update())) |
| 2234 | { |
| 2235 | TABLE_SHARE *s= fld->context->table_list->table->s; |
| 2236 | if (s->versioned && |
| 2237 | (fld->field_name.streq(s->vers_start_field()->field_name) || |
| 2238 | fld->field_name.streq(s->vers_end_field()->field_name))) |
| 2239 | continue; |
| 2240 | list->push_back(fld, thd->mem_root); |
| 2241 | } |
| 2242 | else |
| 2243 | { |
| 2244 | my_error(ER_NON_INSERTABLE_TABLE, MYF(0), view->alias.str, "INSERT"); |
| 2245 | DBUG_RETURN(TRUE); |
| 2246 | } |
| 2247 | } |
| 2248 | DBUG_RETURN(FALSE); |
| 2249 | } |
| 2250 | |
| 2251 | /* |
| 2252 | checking view md5 check sum |
no test coverage detected