Slide 30
Slide 30 text
How it works
• Define thin wrapper class on C (plugin/*.c)
void
psql_inspect_planned_stmt_class_init(mrb_state *mrb, struct RClass *class)
{
class_stmt = mrb_define_class_under(mrb, class, "PlannedStmt", psql_inspect_node_class);
MRB_SET_INSTANCE_TT(class_stmt, MRB_TT_DATA);
mrb_define_class_method(mrb, class_stmt, "current_stmt", psql_inspect_c_current_stmt,
MRB_ARGS_NONE());
mrb_define_method(mrb, class_stmt, "initialize", psql_inspect_planned_stmt_init,
MRB_ARGS_NONE());
mrb_define_method(mrb, class_stmt, "command_type", psql_inspect_planned_stmt_command_type,
MRB_ARGS_NONE());
mrb_define_method(mrb, class_stmt, "plan_tree", psql_inspect_planned_stmt_plan_tree,
MRB_ARGS_NONE());
mrb_define_method(mrb, class_stmt, "rtable", psql_inspect_planned_stmt_rtable,
MRB_ARGS_NONE());
}