Skip to content
  • Jon Olav Hauglid's avatar
    425e262d
    Bug#15902911: ONLINE/INPLACE ALTER DOES NOT SPECIFY INFORMATIVE ERROR · 425e262d
    Jon Olav Hauglid authored
                  FOR REFUSING OPERATION
    
    The problem was that an ALTER TABLE statement using a LOCK/ALGORITHM
    value not supported for the given operation(s), only gave a very generic
    error message "This version of MySQL doesn't yet support ..."
    
    This patch improves on the situation by giving a more detailed error
    message - listing what is not supported, optionally explaining why,
    and suggesting an alternative. For example: "LOCK=NONE is not supported.
    Reason: COPY algorithm requires at least SHARED lock. Try LOCK=SHARED."
    
    Since generally only the storage engine knows why a specific operation
    is not supported, the handler interface is extended by adding
    Alter_inplace_info::unsupported_reason. This allows the storage engine
    to specify a detailed reason. If this field is set, the error message
    reported is "%s is not supported. Reason: %s Try %s.". Otherwise the more
    generic "%s is not supported for this operation. Try %s." is used.
    425e262d
    Bug#15902911: ONLINE/INPLACE ALTER DOES NOT SPECIFY INFORMATIVE ERROR
    Jon Olav Hauglid authored
                  FOR REFUSING OPERATION
    
    The problem was that an ALTER TABLE statement using a LOCK/ALGORITHM
    value not supported for the given operation(s), only gave a very generic
    error message "This version of MySQL doesn't yet support ..."
    
    This patch improves on the situation by giving a more detailed error
    message - listing what is not supported, optionally explaining why,
    and suggesting an alternative. For example: "LOCK=NONE is not supported.
    Reason: COPY algorithm requires at least SHARED lock. Try LOCK=SHARED."
    
    Since generally only the storage engine knows why a specific operation
    is not supported, the handler interface is extended by adding
    Alter_inplace_info::unsupported_reason. This allows the storage engine
    to specify a detailed reason. If this field is set, the error message
    reported is "%s is not supported. Reason: %s Try %s.". Otherwise the more
    generic "%s is not supported for this operation. Try %s." is used.
Loading