📄 read0read.ic
字号:
/******************************************************Cursor read(c) 1997 Innobase OyCreated 2/16/1997 Heikki Tuuri*******************************************************//*************************************************************************Gets the nth trx id in a read view. */UNIV_INLINEdulintread_view_get_nth_trx_id(/*=====================*/ /* out: trx id */ read_view_t* view, /* in: read view */ ulint n) /* in: position */{ ut_ad(n < view->n_trx_ids); return(*(view->trx_ids + n));}/*************************************************************************Sets the nth trx id in a read view. */UNIV_INLINEvoidread_view_set_nth_trx_id(/*=====================*/ read_view_t* view, /* in: read view */ ulint n, /* in: position */ dulint trx_id) /* in: trx id to set */{ ut_ad(n < view->n_trx_ids); *(view->trx_ids + n) = trx_id;}/*************************************************************************Checks if a read view sees the specified transaction. */UNIV_INLINEiboolread_view_sees_trx_id(/*==================*/ /* out: TRUE if sees */ read_view_t* view, /* in: read view */ dulint trx_id) /* in: trx id */{ ulint n_ids; int cmp; ulint i; if (ut_dulint_cmp(trx_id, view->up_limit_id) < 0) { return(TRUE); } if (ut_dulint_cmp(trx_id, view->low_limit_id) >= 0) { return(FALSE); } /* We go through the trx ids in the array smallest first: this order may save CPU time, because if there was a very long running transaction in the trx id array, its trx id is looked at first, and the first two comparisons may well decide the visibility of trx_id. */ n_ids = view->n_trx_ids; for (i = 0; i < n_ids; i++) { cmp = ut_dulint_cmp(trx_id, read_view_get_nth_trx_id(view, n_ids - i - 1)); if (cmp <= 0) { return(cmp < 0); } } return(TRUE);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -