Book Image

MySQL 5.1 Plugin Development

Book Image

MySQL 5.1 Plugin Development

Overview of this book

MySQL has introduced a Plugin API with its latest version – a robust, powerful, and easy way of extending the server functionality with loadable modules on the fly. But until now anyone wishing to develop a plugin would almost certainly need to dig into the MySQL source code and search the Web for missing bits of the information.This is the first book on the MySQL Plugin API. Written together with one of the Plugin API primary architects, it contains all the details you need to build a plugin. It shows what a plugin should contain and how to compile, install, and package it. Every chapter illustrates the material with thoroughly explained source code examples.Starting from the basic features, common to all plugin types, and the structure of the plugin framework, this book will guide you through the different plugin types, from simple examples to advanced ones. Server monitoring, full-text search in JPEG comments, typo-tolerant searches, getting the list of all user variables, system usage statistics, or a complete storage engine with indexes – these and other plugins are developed in different chapters of this book, demonstrating the power and versatility of the MySQL Plugin API and explaining the intricate details of MySQL Plugin programming.
Table of Contents (16 chapters)
MySQL 5.1 Plugin Development
Credits
About the Authors
About the Reviewer
Preface

System Status Variables plugin


At the end of the chapter, let's try to create a different Daemon plugin. This plugin, called sys_status, does not start any threads and does not do anything in the background. It uses the status variables to provide access to the getrusage() statistics. The getrusage() system call returns information about the process resource usage such as number of page faults, number of signals received, and number of context switches. How could we let MySQL users see this information?

As we remember, status variables are defined in terms of pointers to data. That is, SHOW STATUS takes the st_mysql_show_var structure and shows the data pointed to by its value member. It works well when a value to show is stored in a variable; for example, in our vars plugin, where we have stored the value in a status_vars C variable. But in this case we want to show the result of a function call. In other words, we need to use SHOW_FUNC type of a "status variable". And because we...