You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-07-30 19:23:07 +03:00
MCOL-1188 assertion 'fColumn.get() && fSub && fFunc' failed,...
Some cleanup for the previous check-in.
This commit is contained in:
@ -4084,7 +4084,6 @@ void gp_walk(const Item *item, void *arg)
|
|||||||
{
|
{
|
||||||
gp_walk_info* gwip = reinterpret_cast<gp_walk_info*>(arg);
|
gp_walk_info* gwip = reinterpret_cast<gp_walk_info*>(arg);
|
||||||
idbassert(gwip);
|
idbassert(gwip);
|
||||||
bool isCached = false;
|
|
||||||
//Bailout...
|
//Bailout...
|
||||||
if (gwip->fatalParseError) return;
|
if (gwip->fatalParseError) return;
|
||||||
|
|
||||||
@ -4101,8 +4100,8 @@ void gp_walk(const Item *item, void *arg)
|
|||||||
case Item::CACHE_ITEM:
|
case Item::CACHE_ITEM:
|
||||||
{
|
{
|
||||||
// The item or condition is cached as per MariaDB server view but
|
// The item or condition is cached as per MariaDB server view but
|
||||||
// for InfiniDB it need to be executed.
|
// for InfiniDB it need to be parsed and executed.
|
||||||
// MCOL-1188 and
|
// MCOL-1188 and MCOL-1029
|
||||||
Item* orig_item = ((Item_cache*)item)->get_example();
|
Item* orig_item = ((Item_cache*)item)->get_example();
|
||||||
orig_item->traverse_cond(gp_walk, gwip, Item::POSTFIX);
|
orig_item->traverse_cond(gp_walk, gwip, Item::POSTFIX);
|
||||||
break;
|
break;
|
||||||
@ -4286,13 +4285,9 @@ void gp_walk(const Item *item, void *arg)
|
|||||||
cc->resultType(colType_MysqlToIDB(item));
|
cc->resultType(colType_MysqlToIDB(item));
|
||||||
}
|
}
|
||||||
|
|
||||||
// cached item comes in one piece
|
for (uint32_t i = 0; i < ifp->argument_count() && !gwip->rcWorkStack.empty(); i++)
|
||||||
if (!isCached)
|
|
||||||
{
|
{
|
||||||
for (uint32_t i = 0; i < ifp->argument_count() && !gwip->rcWorkStack.empty(); i++)
|
gwip->rcWorkStack.pop();
|
||||||
{
|
|
||||||
gwip->rcWorkStack.pop();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// bug 3137. If filter constant like 1=0, put it to ptWorkStack
|
// bug 3137. If filter constant like 1=0, put it to ptWorkStack
|
||||||
// MariaDB bug 750. Breaks if compare is an argument to a function.
|
// MariaDB bug 750. Breaks if compare is an argument to a function.
|
||||||
@ -4360,14 +4355,6 @@ void gp_walk(const Item *item, void *arg)
|
|||||||
bool isOr = (ftype == Item_func::COND_OR_FUNC);
|
bool isOr = (ftype == Item_func::COND_OR_FUNC);
|
||||||
bool isXor = (ftype == Item_func::XOR_FUNC);
|
bool isXor = (ftype == Item_func::XOR_FUNC);
|
||||||
|
|
||||||
// MCOL-1029 A cached COND_ITEM is something like:
|
|
||||||
// AND (TRUE OR FALSE)
|
|
||||||
// We can skip it
|
|
||||||
if (isCached)
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
List<Item> *argumentList;
|
List<Item> *argumentList;
|
||||||
List<Item> xorArgumentList;
|
List<Item> xorArgumentList;
|
||||||
if (isXor)
|
if (isXor)
|
||||||
|
Reference in New Issue
Block a user