UNIV_INTERNiboolbtr_cur_update_alloc_zip===================== page_zip_des_t page_zip! inout compressed page buf_block_t block ! inout buffer page dict_index_t index ! in the index corresponding to
该函数的作用是为一个压缩页分配空间。如果该页已经有足够的空间,函数将直接返回。如果需要更多的空间,函数将尝试重新压缩该页,以获得更多的可用空间。如果重新压缩失败,则函数将重置插入缓冲区位图中的空闲位,并返回失败。
该函数的参数包括:
- page_zip:指向压缩页的指针。
- block:指向缓冲页的指针。
- index:指向与该块对应的索引的指针。
- length:需要分配的空间大小。
- create:一个布尔值,指示是否需要删除并插入,还是更新原地。
- mtr:指向 mini-transaction 的指针。
该函数首先检查是否已经有足够的空间可用。如果是,函数将直接返回TRUE。如果没有足够的空间可用,则函数将尝试重新压缩该页。如果该页还没有被压缩过,那么重新压缩将不起作用,因此函数将直接返回FALSE。如果重新压缩成功,函数将检查是否有足够的空间可用。如果没有足够的空间可用,函数将重置插入缓冲区位图中的空闲位,并返回FALSE。如果有足够的空间可用,函数将返回TRUE。
原文地址: https://www.cveoy.top/t/topic/eF5n 著作权归作者所有。请勿转载和采集!