Skip to content
  • Marc Alff's avatar
    8f372263
    BUG#24432910 ASSERT 'M_INITIALIZED' IN PFS_STATUS_VARIABLE_CACHE::DO_MATERIALIZE_SESSION · 8f372263
    Marc Alff authored
    Original issue never reproduced, root cause unknown.
    
    This fix is a cleanup, to simplify the code base around
    system variables / status variables in performance schema tables.
    
    In particular:
    - thread local keys are removed
    - class PFS_table_context is removed
    - per table context classes are removed
    
    Rationale:
    
    Class PFS_table_context is now dead code:
    - PFS_table_context::set_item() is never called
    - PFS_table_context::is_item_set() is never called
    - Code path using PFS_table_context::versions_match()
      in table or index scans can cause spurious failures,
      and do not protect from races anyway,
      since no lock is used when checking versions.
    
    After many bug fixes and refactoring in this area,
    class PFS_table_context is no longer needed,
    and should not be used.
    
    PLEASE NOTE:
    This cleanup is MySQL 8.0 specific,
    and can not be back ported to MySQL 5.7
    
    Approved by: Chris Powers <chris.powers@oracle.com>
    8f372263
    BUG#24432910 ASSERT 'M_INITIALIZED' IN PFS_STATUS_VARIABLE_CACHE::DO_MATERIALIZE_SESSION
    Marc Alff authored
    Original issue never reproduced, root cause unknown.
    
    This fix is a cleanup, to simplify the code base around
    system variables / status variables in performance schema tables.
    
    In particular:
    - thread local keys are removed
    - class PFS_table_context is removed
    - per table context classes are removed
    
    Rationale:
    
    Class PFS_table_context is now dead code:
    - PFS_table_context::set_item() is never called
    - PFS_table_context::is_item_set() is never called
    - Code path using PFS_table_context::versions_match()
      in table or index scans can cause spurious failures,
      and do not protect from races anyway,
      since no lock is used when checking versions.
    
    After many bug fixes and refactoring in this area,
    class PFS_table_context is no longer needed,
    and should not be used.
    
    PLEASE NOTE:
    This cleanup is MySQL 8.0 specific,
    and can not be back ported to MySQL 5.7
    
    Approved by: Chris Powers <chris.powers@oracle.com>
Loading