码迷,mamicode.com
首页 > 其他好文 > 详细

ha_innobase::general_fetch

时间:2015-12-17 00:31:34      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:

 

/***********************************************************************//**
Reads the next or previous row from a cursor, which must have previously been
positioned using index_read.
@return    0, HA_ERR_END_OF_FILE, or error number */
UNIV_INTERN
int
ha_innobase::general_fetch(
/*=======================*/
    uchar*    buf,        /*!< in/out: buffer for next row in MySQL
                format */
    uint    direction,    /*!< in: ROW_SEL_NEXT or ROW_SEL_PREV */
    uint    match_mode)    /*!< in: 0, ROW_SEL_EXACT, or
                ROW_SEL_EXACT_PREFIX */
{
    ulint        ret;
    int        error    = 0;

    DBUG_ENTER("general_fetch");

    ut_a(prebuilt->trx == thd_to_trx(user_thd));

    innodb_srv_conc_enter_innodb(prebuilt->trx);

    ret = row_search_for_mysql((byte*)buf, 0, prebuilt, match_mode, direction);

    innodb_srv_conc_exit_innodb(prebuilt->trx);

    switch (ret) {
    case DB_SUCCESS:
        error = 0;
        table->status = 0;
        break;
    case DB_RECORD_NOT_FOUND:
        error = HA_ERR_END_OF_FILE;
        table->status = STATUS_NOT_FOUND;
        break;
    case DB_END_OF_INDEX:
        error = HA_ERR_END_OF_FILE;
        table->status = STATUS_NOT_FOUND;
        break;
    default:
        error = convert_error_code_to_mysql(
            (int) ret, prebuilt->table->flags, user_thd);
        table->status = STATUS_NOT_FOUND;
        break;
    }

    DBUG_RETURN(error);
}

 

ha_innobase::general_fetch

标签:

原文地址:http://www.cnblogs.com/taek/p/5052711.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!