mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
updateability of field with collation support (BUG#5506)
This commit is contained in:
@ -148,8 +148,9 @@ int mysql_create_view(THD *thd,
|
||||
Item *item;
|
||||
while ((item= it++))
|
||||
{
|
||||
if (item->type() == Item::FIELD_ITEM)
|
||||
((Item_field *)item)->any_privileges= 1;
|
||||
Item_field *field;
|
||||
if ((field= item->filed_for_view_update()))
|
||||
field->any_privileges= 1;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@ -237,12 +238,12 @@ int mysql_create_view(THD *thd,
|
||||
view->real_name);
|
||||
while ((item= it++))
|
||||
{
|
||||
Item_field *fld;
|
||||
uint priv= (get_column_grant(thd, &view->grant, db,
|
||||
view->real_name, item->name) &
|
||||
VIEW_ANY_ACL);
|
||||
if (item->type() == Item::FIELD_ITEM)
|
||||
if ((fld= item->filed_for_view_update()))
|
||||
{
|
||||
Item_field *fld= (Item_field *)item;
|
||||
/*
|
||||
There are no any privileges on VIEW column or there are
|
||||
some other privileges then we have for underlaying table
|
||||
@ -903,8 +904,9 @@ bool check_key_in_view(THD *thd, TABLE_LIST *view)
|
||||
uint k;
|
||||
for (k= 0; k < elements_in_view; k++)
|
||||
{
|
||||
if (trans[k]->type() == Item::FIELD_ITEM &&
|
||||
((Item_field *)trans[k])->field == key_part->field)
|
||||
Item_field *field;
|
||||
if ((field= trans[k]->filed_for_view_update()) &&
|
||||
field->field == key_part->field)
|
||||
break;
|
||||
}
|
||||
if (k == elements_in_view)
|
||||
@ -923,8 +925,9 @@ bool check_key_in_view(THD *thd, TABLE_LIST *view)
|
||||
{
|
||||
for (i= 0; i < elements_in_view; i++)
|
||||
{
|
||||
if (trans[i]->type() == Item::FIELD_ITEM &&
|
||||
((Item_field *)trans[i])->field == *field_ptr)
|
||||
Item_field *field;
|
||||
if ((field= trans[i]->filed_for_view_update()) &&
|
||||
field->field == *field_ptr)
|
||||
break;
|
||||
}
|
||||
if (i == elements_in_view) // If field didn't exists
|
||||
@ -976,8 +979,9 @@ void insert_view_fields(List<Item> *list, TABLE_LIST *view)
|
||||
|
||||
for (uint i= 0; i < elements_in_view; i++)
|
||||
{
|
||||
if (trans[i]->type() == Item::FIELD_ITEM)
|
||||
list->push_back(trans[i]);
|
||||
Item_field *fld;
|
||||
if ((fld= trans[i]->filed_for_view_update()))
|
||||
list->push_back(fld);
|
||||
}
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
Reference in New Issue
Block a user