調用存儲引擎的第1個方法是調用新的處理程序實例。
在存儲引擎源文件中定義handlerton之前,必須定義用於函數實例化的函數題頭。下面給出了1個來自CSV引擎的示例:
static handler* tina_create_handler(TABLE *table);
正如你所見到的那樣,函數接受指向處理程序准備管理的表的指針,並返回處理程序對象。
定義了函數題頭後,用第21個handlerton元素中的函數指針命名函數,指明函數負責生成新的處理程序實例。
下面給出了MyISAM存儲引擎的實例化函數示例:
static handler *myisam_create_handler(TABLE *table) { return new ha_myisam(table); }
該調用隨後與存儲引擎的構造程序一起工作。下面給出了來自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()初始化。