1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-07-27 21:01:50 +03:00

MCOL-1188 assertion 'fColumn.get() && fSub && fFunc' failed, ... MySQL server crashed.

The problem was in processing a subquery in the where clause that was categorized as a
CACHE_ITEM in the parse tree. The fix involved how we walk the parse tree in gp_walk().
This commit is contained in:
Ravi Prakash
2018-08-30 20:24:24 -07:00
parent 81761840ac
commit 58bc867ca1

View File

@ -4096,15 +4096,17 @@ void gp_walk(const Item *item, void *arg)
if (itype == Item::FUNC_ITEM && ((Item_func*)item)->functype() == Item_func::XOR_FUNC )
itype = Item::COND_ITEM;
if(item->type() == Item::CACHE_ITEM)
{
item = ((Item_cache*)item)->get_example();
itype = item->type();
isCached = true;
}
switch (itype)
{
case Item::CACHE_ITEM:
{
// The item or condition is cached as per MariaDB server view but
// for InfiniDB it need to be executed.
// MCOL-1188 and
Item* orig_item = ((Item_cache*)item)->get_example();
orig_item->traverse_cond(gp_walk, gwip, Item::POSTFIX);
break;
}
case Item::FIELD_ITEM:
{
Item_field* ifp = (Item_field*)item;