• marko's avatar
    branches/zip: When creating an index in innodb_strict_mode, check that · 3b2f5c05
    marko authored
    the maximum record size will never exceed the B-tree page size limit.
    For uncompressed tables, there should always be enough space for two
    records in an empty B-tree page.  For compressed tables, there should
    be enough space for storing two node pointer records or one data
    record in an empty page in uncompressed format.
    
    dict_build_table_def_step(): Remove the inaccurate check for table row
    size.
    
    dict_index_too_big_for_tree(): New function: check if the index
    records would be too big for a B-tree page.
    
    dict_index_add_to_cache(): Add the parameter "strict".  Invoke
    dict_index_too_big_for_tree() if it is set.
    
    trx_is_strict(), thd_is_strict(): New functions, for determining if
    innodb_strict_mode is enabled for the current transaction.
    
    dict_create_index_step(): Pass the new parameter strict of
    dict_index_add_to_cache() as trx_is_strict(trx).  All other callers
    pass it as FALSE.
    
    innodb.test: Enable innodb_strict_mode before attempting to create a
    table with a too big record size.
    
    innodb-zip.test: Remove the test of inserting random data.  Add tests
    for checking that the maximum record lengths are enforced at table
    creation time.
    3b2f5c05
To find the state of this project's repository at the time of any of these versions, check out the tags.
ChangeLog 9.33 KB