• Aleksey Midenkov's avatar
    MDEV-20077 Warning on full history partition is delayed until next DML statement · ddc416c6
    Aleksey Midenkov authored
    Moved LIMIT warning from vers_set_hist_part() to new call
    vers_check_limit() at table unlock phase. At that point
    read_partitions bitmap is already pruned by DML code (see
    prune_partitions(), find_used_partitions()) so we have to set
    corresponding bits for working history partition.
    
    Also we don't do my_error(ME_WARNING|ME_ERROR_LOG), because at that
    point it doesn't update warnings number, so command reports 0 warnings
    (but warning list is still updated). Instead we do
    push_warning_printf() and sql_print_warning() separately.
    
    Under LOCK TABLES external_lock(F_UNLCK) is not executed. There is
    start_stmt(), but no corresponding "stop_stmt()". So for that mode we
    call vers_check_limit() directly from close_thread_tables().
    
    Test result has been changed according to new LIMIT and warning
    printing algorithm. For convenience all LIMIT warnings are marked with
    "You see warning above ^".
    
    TODO MDEV-20345 fixed. Now vers_history_generating() contains
    fine-grained list of DML-commands that can generate history (and TODO
    mechanism worked well).
    ddc416c6
ha_partition.cc 357 KB