• marko's avatar
    branches/zip: Assert that only leaf pages of clustered indexes may contain · fb8ce599
    marko authored
    externally stored columns.  Make some use of the fact in compression and
    decompression.
    
    rec_init_offsets(): Add ut_ad(dict_index_is_clust(index)) before flagging
    external columns.
    
    page_zip_get_trailer_len(): Assert ut_ad(!page_zip->n_blobs) unless
    dict_index_is_clust(index).
    
    page_zip_get_n_prev_extern(): Add ut_ad(dict_index_is_clust(index)).
    
    page_zip_compress(), page_zip_decompress_low(): Add dict_index_is_clust()
    assertions.  Allow completely external storage of columns.  Simplify
    the computation of "externs".
    
    page_zip_write_rec(): Store leaf node records of non-clustered indexes
    with one memcpy(), avoiding rec_offs_n_extern() and the for loop.
    
    page_zip_write_blob_ptr(): Add ut_ad(dict_index_is_clust(index)).
    Simplify the computation of "externs".
    
    page_zip_clear_rec(): Only attempt to zero out BLOB pointers when
    the record belongs to a leaf page of a clustered index.
    
    page_zip_dir_delete(): Take a fast path when the record is
    not on a leaf page of a clustered index.
    Simplify the computation of "externs".
    
    page_zip_copy(): Assert that n_blobs is zero on anything else than
    leaf pages of clustered indexes.
    fb8ce599
rem0rec.c 42.2 KB