MDEV-12206 Query_cache::send_result_to_client() may corrupt THD::query_plan_flags
This is essentially a backport of the 10.0 commit 203f4d41 that fixes a bug and silences a GCC 6.3.0 warning about a left shift of a signed integer. Missing parenthesis in a macro definition caused wrong operation in the Query_cache::send_result_to_client() statement thd->query_plan_flags= (thd->query_plan_flags & ~QPLAN_QC_NO) | QPLAN_QC; This would expand to thd->query_plan_flags= (thd->query_plan_flags & ~1) << 6 | 1 << 5; which would shift the flags by 6 and clear an unrelated flag, instead of clearing the flag (1 << 6).
Showing
Please register or sign in to comment