As of MySQL 5.7.6, MySQL Server supports query rewrite plugins that can examine and possibly modify statements received by the server before the server executes them. See Query Rewrite Plugins.
MySQL distributions include a postparse query rewrite plugin named
Rewriter and scripts for installing the plugin
and its associated components. These components work together to
A server-side plugin named
SELECTstatements and may rewrite them, based on its in-memory cache of rewrite rules. Standalone
SELECTstatements in prepared statements are subject to rewriting.
SELECTstatements occurring within view definitions or stored programs are not subject to rewriting.
Rewriterplugin uses a database named
query_rewritecontaining a table named
rewrite_rules. The table provides persistent storage for the rules that the plugin uses to decide whether to rewrite statements. Users communicate with the plugin by modifying the set of rules stored in this table. The plugin communicates with users by setting the
messagecolumn of table rows.
query_rewritedatabase contains a stored procedure named
flush_rewrite_rules()that loads the contents of the rules table into the plugin.
A user-defined function named
load_rewrite_rules()is used by the
Rewriterplugin exposes system variables that enable plugin configuration and status variables that provide runtime operational information.
The following sections describe how to install and use the
Rewriter plugin, and provide reference
information for its associated components.