Skip to content
  • Satya Bodapati's avatar
    11309edf
    Bug#21816041 - ROW_FORMAT=DYNAMIC IS MORE RESTRICTIVE THAN ROW_FORMAT=COMPACT · 11309edf
    Satya Bodapati authored
    
    
    Problem:
    --------
    Table creation succeeds with ROW_FORMAT=COMPACT and REDUNDANT but fails with
    DYNAMIC and COMPRESSED. This happens because of wrong undo log record size
    calculation
    
    Fix:
    ----
    The undo log record size calculation at DDL time(dict_index_too_big_for_undo())
    is conservative sometimes and aggressive at other times. Since there is a DML
    time check and the behaviour of dict_index_too_big_for_undo() causes DDL
    failures(inturn replication breakage), we will remove this undo log record
    size calculation logic at DDLs because there is undo log record size
    check for DMLs which is more accurate.
    
    We also make DYNAMIC and COMPRESSED to adhere strict_mode=OFF and allow
    row length violations at DDL time.
    
    After this fix, it is possible to create a table with 'non-updatable'
    columns. i.e. you cannot UPDATE a single column.
    
    Reviewed-by: default avatarMarko Makela <marko.makela@oracle.com>
    RB: 10220
    (cherry picked from commit 6f57fad788920634ddf07f80b6ebfe1575f888cc)
    11309edf
    Bug#21816041 - ROW_FORMAT=DYNAMIC IS MORE RESTRICTIVE THAN ROW_FORMAT=COMPACT
    Satya Bodapati authored
    
    
    Problem:
    --------
    Table creation succeeds with ROW_FORMAT=COMPACT and REDUNDANT but fails with
    DYNAMIC and COMPRESSED. This happens because of wrong undo log record size
    calculation
    
    Fix:
    ----
    The undo log record size calculation at DDL time(dict_index_too_big_for_undo())
    is conservative sometimes and aggressive at other times. Since there is a DML
    time check and the behaviour of dict_index_too_big_for_undo() causes DDL
    failures(inturn replication breakage), we will remove this undo log record
    size calculation logic at DDLs because there is undo log record size
    check for DMLs which is more accurate.
    
    We also make DYNAMIC and COMPRESSED to adhere strict_mode=OFF and allow
    row length violations at DDL time.
    
    After this fix, it is possible to create a table with 'non-updatable'
    columns. i.e. you cannot UPDATE a single column.
    
    Reviewed-by: default avatarMarko Makela <marko.makela@oracle.com>
    RB: 10220
    (cherry picked from commit 6f57fad788920634ddf07f80b6ebfe1575f888cc)
Loading