• Mattias Jonsson's avatar
    Bug#37453: Dropping/creating index on partitioned table with · 65811a33
    Mattias Jonsson authored
    InnoDB Plugin locks table
    
    The fast/on-line add/drop index handler calls was not implemented
    whithin the partitioning.
    
    This implements it in the partitioning handler.
    
    Since this is only used by the not included InnoDB plugin, there
    is no test case. (Have tested it manually with the plugin, and
    it does not allow unique indexes not including partitioning
    function, or removal of pk, which in innodb generates a new pk,
    which is not in the partitioning function.)
    
    NOTE: This introduces a new handler method, and because of that
    changes the storage engine api. (One cannot use a handlerton to
    see the capabilities of a table's handler if it is partitioned.
    So I added a wrapper function in the handler that defaults to
    the handlerton function, which the partitioning handler overrides.
    
    sql/ha_partition.cc:
      Bug#37453: Dropping/creating index on partitioned table with
      InnoDB Plugin locks table
      
      Added support for fast/on-line add/drop index.
      Implemented alter_table_flags as bit-or of the partitioned
      hton and the first partitions alter_table_flags.
      
      It is only to forward the calls for the other functions:
      check_if_incompatible_data
      add_index
      prepare_drop_index
      final_drop_index
      
      to all parts handler
    sql/ha_partition.h:
      Bug#37453: Dropping/creating index on partitioned table with
      InnoDB Plugin locks table
      
      Added support for fast/on-line add/drop index.
    sql/handler.h:
      Bug#37453: Dropping/creating index on partitioned table with
      InnoDB Plugin locks table
      
      Added the function on handler level, defaulting to use
      the handlerton function, but a handler can override it.
      Needed for partitioned tables.
      
      NOTE: Change of storage engine api.
    sql/sql_partition.cc:
      Bug#37453: Dropping/creating index on partitioned table with
      InnoDB Plugin locks table
      
      Using the new handler function, instead of the handlerton
      function. This works better with the partitioning handler.
    sql/sql_table.cc:
      Bug#37453: Dropping/creating index on partitioned table with
      InnoDB Plugin locks table
      
      Using the new handler function, instead of the handlerton
      function. This works better with the partitioning handler.
      Also using new process info for 'manage keys' (kind of fix
      for bug-37550).
    65811a33
handler.h 73.1 KB