• Jacob Mathew's avatar
    MDEV-16889: Spider Crash mysqld got exception 0xc0000005 · f6694b62
    Jacob Mathew authored
    The SELECT with the INNER JOIN is executed with one of the two tables being
    optimized as a constant table, which is pre-read.  Spider nevertheless attempts
    to push down the join to the data node.  The crash occurs because the constant
    table is excluded from the optimized query that Spider attempts to push down.
    
    In order for Spider to be able to push down a join, the following conditions
    need to be met:
    - All of the tables involved in the join need to be included in the optimized
      query that Spider pushes down.  When any of the tables involved in the join
      is a constant table, it is excluded from the optimized query that Spider
      attempts to push down.
    - All fields involved in the query need to be members of tables included in the
      optimized query.
    
    I fixed the problem by preventing Spider from pushing down queries that include
    a field that is not a member of a table included in the optimized query.  This
    solution fixes the reported problem and also fixes other potential problems.
    
    Author:
      Jacob Mathew.
    
    Reviewer:
      Kentoku Shiba.
    
    Cherry-Picked:
      Commit 4885baf6 on branch bb-10.3-MDEV-16889
    f6694b62
spd_group_by_handler.cc 64.7 KB