10bet网址
MySQL内部手册


23.6处理处理程序实例化

存储引擎需要支持的第一个方法调用是对新处理程序实例的调用。

之前handlerton在存储引擎源文件中定义时,必须定义实例化方法的方法头。这里有一个例子CSV引擎:

静态处理程序tina_create_handler(表*表)

如您所见,该方法接受一个指向处理程序要管理的表的指针,并返回一个处理程序对象。

定义方法标头后,方法的名称中包含方法指针create ()handlerton元素,标识该方法负责生成新的处理程序实例。

这里有一个例子MyISAM存储引擎的实例化方法:

静态处理程序*myisam_create_handler(表*表){返回新的ha_myisam(表);}

然后,此调用与存储引擎的构造函数一起工作。这里有一个例子联邦存储引擎:

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) {}

这里还有一个例子例子存储引擎:

ha_example::ha_example(TABLE *table_arg):handler(&example_hton, table_arg) {}

的附加元素联邦示例是处理程序的额外初始化。所需的最小实现是处理程序()中显示的初始化例子的版本。