調用存儲引擎的第1個方法是調用新的處理程序實例,
通過調用新的處理程序實例來調用Mysql存儲引擎
。在存儲引擎源文件中定義handlerton之前,必須定義用于函數(shù)實例化的函數(shù)題頭。下面給出了1個來自CSV引擎的示例:
static handler* tina_create_handler(TABLE *table);
正如你所見到的那樣,函數(shù)接受指向處理程序準備管理的表的指針,并返回處理程序對象。
定義了函數(shù)題頭后,用第21個handlerton元素中的函數(shù)指針命名函數(shù),指明函數(shù)負責生成新的處理程序實例。
下面給出了MyISAM存儲引擎的實例化函數(shù)示例:
static handler *myisam_create_handler(TABLE *table)
{
return new ha_myisam(table);
}
該調用隨后與存儲引擎的構造程序一起工作,
電腦資料
《通過調用新的處理程序實例來調用Mysql存儲引擎》(http://www.lotusphilosophies.com)。下面給出了來自FEDERATED存儲引擎的1個示例:ha_federated::ha_federated(TABLE *table_arg)
:handler(&federated_hton, table_arg),
MySQL(0), stored_result(0), scan_flag(0),
ref_length(sizeof(MYSQL_ROW_OFFSET)), current_position(0)
{}
下面給出了來自EXAMPLE存儲引擎的另一個示例:
ha_example::ha_example(TABLE *table_arg)
:handler(&example_hton, table_arg)
{}
FEDERATED示例中的附加元素是處理程序的額外初始化要素。所要求的最低實施是EXAMPLE示例中顯示的handler()初始化。