UNIV_INTERNulintbtr_cur_pessimistic_insert======================= ulint flags ! in undo logging and locking flags if not zero the parameter thr should be specified; if no undo logging is specif
btr_cur_pessimistic_insert函数用于在B-Tree中插入一个新的记录。它首先尝试乐观插入,如果失败,则进行悲观插入。如果指定了undo logging和locking flags,则会检查锁并写入undo log。
函数的参数说明如下:
- flags:undo logging和locking flags。如果不为零,则必须指定参数thr;如果没有指定undo logging,则调用者必须在文件空间中保留足够的空闲区域,以确保插入操作一定成功。
- cursor:插入位置之后的游标。该游标保持有效。
- entry:要插入的项。
- rec:指向插入的记录的指针。
- big_rec:指向要由调用者外部存储的大记录向量的指针,或为NULL。
- n_ext:存储在外部的列数。
- thr:查询线程或NULL。
- mtr:mtr。
函数首先尝试乐观插入,如果失败,则进行悲观插入。如果指定了undo logging和locking flags,则会检查锁并写入undo log。如果记录太大,需要在磁盘上存储一些字段,则将这些字段存储在由调用者外部分配的大记录向量中。如果插入的页是根页,则调用btr_root_raise_and_insert函数,否则调用btr_page_split_and_insert函数。最后,更新哈希表并返回DB_SUCCESS
原文地址: http://www.cveoy.top/t/topic/eF4t 著作权归作者所有。请勿转载和采集!