mysql创建一个table_mysql创建table

/**********************************************************************//**

Allocates a new file segment inode.

@return segment inode, or NULL if not enough space*/

staticfseg_inode_t*fsp_alloc_seg_inode(/*================*/fsp_header_t* space_header, /*!< in: space header*/mtr_t* mtr) /*!< in/out: mini-transaction*/{

ulint page_no;

buf_block_t*block;

page_t*page;

fseg_inode_t*inode;

ibool success;

ulint zip_size;

ulint n;

ut_ad(page_offset(space_header)==FSP_HEADER_OFFSET);if (flst_get_len(space_header + FSP_SEG_INODES_FREE, mtr) == 0) {/*Allocate a new segment inode page*/success=fsp_alloc_seg_inode_page(space_header, mtr);if (!success) {return(NULL);

}

}

page_no= flst_get_first(space_header +FSP_SEG_INODES_FREE, mtr).page;

zip_size=fsp_flags_get_zip_size(

mach_read_from_4(FSP_SPACE_FLAGS+space_header));

block=buf_page_get(page_get_space_id(page_align(space_header)),

zip_size, page_no, RW_X_LATCH, mtr);

buf_block_dbg_add_level(block, SYNC_FSP_PAGE);

page=buf_block_get_frame(block);

n= fsp_seg_inode_page_find_free(page, 0, zip_size, mtr);

ut_a(n!=ULINT_UNDEFINED);

inode=fsp_seg_inode_page_get_nth_inode(page, n, zip_size, mtr);if (ULINT_UNDEFINED == fsp_seg_inode_page_find_free(page, n + 1,

zip_size, mtr)) {/*There are no other unused headers left on the page: move it

to another list*/flst_remove(space_header+FSP_SEG_INODES_FREE,

page+FSEG_INODE_PAGE_NODE, mtr);

flst_add_last(space_header+FSP_SEG_INODES_FULL,

page+FSEG_INODE_PAGE_NODE, mtr);

}

ut_ad(!mach_read_from_8(inode +FSEG_ID)|| mach_read_from_4(inode + FSEG_MAGIC_N) ==FSEG_MAGIC_N_VALUE);return(inode);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值