mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
don't cast random items to Item_result_field*
do it only for items that inherit from Item_result_field*
This commit is contained in:
@@ -16281,27 +16281,27 @@ Field *create_tmp_field(THD *thd, TABLE *table,Item *item, Item::Type type,
|
|||||||
|
|
||||||
/* Fall through */
|
/* Fall through */
|
||||||
case Item::COND_ITEM:
|
case Item::COND_ITEM:
|
||||||
|
case Item::SUBSELECT_ITEM:
|
||||||
|
case Item::REF_ITEM:
|
||||||
|
case Item::EXPR_CACHE_ITEM:
|
||||||
|
if (make_copy_field)
|
||||||
|
{
|
||||||
|
DBUG_ASSERT(((Item_result_field*)item)->result_field);
|
||||||
|
*from_field= ((Item_result_field*)item)->result_field;
|
||||||
|
}
|
||||||
|
/* Fall through */
|
||||||
case Item::FIELD_AVG_ITEM:
|
case Item::FIELD_AVG_ITEM:
|
||||||
case Item::FIELD_STD_ITEM:
|
case Item::FIELD_STD_ITEM:
|
||||||
case Item::SUBSELECT_ITEM:
|
|
||||||
/* The following can only happen with 'CREATE TABLE ... SELECT' */
|
|
||||||
case Item::PROC_ITEM:
|
case Item::PROC_ITEM:
|
||||||
case Item::INT_ITEM:
|
case Item::INT_ITEM:
|
||||||
case Item::REAL_ITEM:
|
case Item::REAL_ITEM:
|
||||||
case Item::DECIMAL_ITEM:
|
case Item::DECIMAL_ITEM:
|
||||||
case Item::STRING_ITEM:
|
case Item::STRING_ITEM:
|
||||||
case Item::DATE_ITEM:
|
case Item::DATE_ITEM:
|
||||||
case Item::REF_ITEM:
|
|
||||||
case Item::NULL_ITEM:
|
case Item::NULL_ITEM:
|
||||||
case Item::VARBIN_ITEM:
|
case Item::VARBIN_ITEM:
|
||||||
case Item::CACHE_ITEM:
|
case Item::CACHE_ITEM:
|
||||||
case Item::EXPR_CACHE_ITEM:
|
|
||||||
case Item::PARAM_ITEM:
|
case Item::PARAM_ITEM:
|
||||||
if (make_copy_field)
|
|
||||||
{
|
|
||||||
DBUG_ASSERT(((Item_result_field*)item)->result_field);
|
|
||||||
*from_field= ((Item_result_field*)item)->result_field;
|
|
||||||
}
|
|
||||||
return create_tmp_field_from_item(thd, item, table,
|
return create_tmp_field_from_item(thd, item, table,
|
||||||
(make_copy_field ? 0 : copy_func),
|
(make_copy_field ? 0 : copy_func),
|
||||||
modify_item);
|
modify_item);
|
||||||
|
Reference in New Issue
Block a user