Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Not a Bug
-
10.0(EOL)
-
None
-
MariaDB 10.0.12
Description
I wrote a InnoDB wrapper class and implemented virtual int info(uint) function in sql/handler.h.
int innodb_wra::info(uint flag)
|
{
|
error = innodb_handler->info(flag);
|
|
|
DBUG_RETURN(error);
|
}
|
But Index Merge Optimization was not executed. So, I added a few line below.
int innodb_wra::info(uint flag)
|
{
|
error = innodb_handler->info(flag);
|
|
// if (stats.records < 2) <---- tried but index merge method was not executed
|
// stats.records= 2;
|
|
stats = innodb_handler->stats; // so I copied all stats
|
|
|
DBUG_RETURN(error);
|
}
|
so I was able to see index merge optimizer plan in EXPLAIN output.
But I got this error, after virtual handler *clone(const char *name, MEM_ROOT *mem_root) funtion is called.
Out of memory; check if mysqld or some other process uses all available memory; if not, you may have to use 'ulimit' to allow mysqld to use more memory or you can add more swap space
I set ullimit and MariaDB system variables. But the result was the same.
I guess my_malloc() failed in handler *handler::clone(const char *name, MEM_ROOT *mem_root) function.