調(diào)用存儲(chǔ)引擎的第1個(gè)方法是調(diào)用新的處理程序?qū)嵗?h3>通過調(diào)用新的處理程序?qū)嵗齺碚{(diào)用Mysql存儲(chǔ)引擎。
在存儲(chǔ)引擎源文件中定義handlerton之前,必須定義用于函數(shù)實(shí)例化的函數(shù)題頭。下面給出了1個(gè)來自CSV引擎的示例:
static handler* tina_create_handler(TABLE *table);
正如你所見到的那樣,函數(shù)接受指向處理程序準(zhǔn)備管理的表的指針,并返回處理程序?qū)ο蟆?/p>
定義了函數(shù)題頭后,用第21個(gè)handlerton元素中的函數(shù)指針命名函數(shù),指明函數(shù)負(fù)責(zé)生成新的處理程序?qū)嵗?/p>
下面給出了MyISAM存儲(chǔ)引擎的實(shí)例化函數(shù)示例:
static handler *myisam_create_handler(TABLE *table)
{
return new ha_myisam(table);
}
該調(diào)用隨后與存儲(chǔ)引擎的構(gòu)造程序一起工作,
電腦資料
《通過調(diào)用新的處理程序?qū)嵗齺碚{(diào)用Mysql存儲(chǔ)引擎》(http://www.ishadingyu.com)。下面給出了來自FEDERATED存儲(chǔ)引擎的1個(gè)示例: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存儲(chǔ)引擎的另一個(gè)示例:
ha_example::ha_example(TABLE *table_arg)
:handler(&example_hton, table_arg)
{}
FEDERATED示例中的附加元素是處理程序的額外初始化要素。所要求的最低實(shí)施是EXAMPLE示例中顯示的handler()初始化。