1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-27 18:02:13 +03:00

Bug #21086: server crashes when VIEW defined with a SELECT with COLLATE clause is called

When executing INSERT over a view with calculated columns it was assuming all
  elements of the fields collection are actually Item_field instances.
  This may not be true when inserting into a view and that view has columns that are 
  such expressions that allow updating (like setting a collation for example).
  Corrected to access field information through the filed_for_view_update() function and 
  retrieve correctly the field info even for "update-friendly" non-Item_field items.
This commit is contained in:
gkodinov/kgeorge@macbook.gmz
2006-07-25 18:42:49 +03:00
parent 9e9fb3e4e4
commit f5b0dd6a00
4 changed files with 40 additions and 3 deletions

View File

@ -4959,12 +4959,17 @@ fill_record(THD * thd, List<Item> &fields, List<Item> &values,
bool ignore_errors)
{
List_iterator_fast<Item> f(fields),v(values);
Item *value;
Item *value, *fld;
Item_field *field;
DBUG_ENTER("fill_record");
while ((field=(Item_field*) f++))
while ((fld= f++))
{
if (!(field= fld->filed_for_view_update()))
{
my_error(ER_NONUPDATEABLE_COLUMN, MYF(0), fld->name);
DBUG_RETURN(TRUE);
}
value=v++;
Field *rfield= field->field;
TABLE *table= rfield->table;