• Nikita Malyavin's avatar
    [1/2] MDEV-18166 ASSERT_COLUMN_MARKED_FOR_READ failed on tables with vcols · 7d9ba57d
    Nikita Malyavin authored
    This is a 10.2+ part of a jira task
    
    The two bugs regarding virtual column marking have been fixed:
    
    1. UPDATE of a partitioned table, where the optimizer has chosen a
     secondary index to make a filesort;
    2. INSERT into a table with a nonblob field generated from a blob, with
     binlog enabled and binlog_row_image=noblob.
    
    3. DELETE from a view on a table with virtual column.
    
    Generally the assertion happens from update_virtual_fields() call
    
    These bugs are root-caused by missing field marking for dependant fields
    of a virtual column.
    
    Therefore a fix is: mark all the fields involved in the vcol expression by
    calling field->register_field_in_read_map() instead just setting a single
    bit.
    
    3 was reproducible only on 10.4+, however the problem might has just been
    invisible in the earlier versions. The fix is applicable to 10.2-10.3 as
    well.
    7d9ba57d
sql_base.cc 288 KB