• 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
innodb.test 72.8 KB