Regex Filter # Overview The regex filter is a filter module for MaxScale that is able to rewrite query content using regular expression matches and text substitution. # Configuration The configuration block for the Regex filter requires the minimal filter options in it’s section within the MaxScale.cnf file, stored in $MAXSCALE_HOME/etc/MaxScale.cnf. [MyRegexFilter] type=filter module=regexfilter match=some string replace=replacement string ## Filter Options The regex filter accepts the options ignorecase or case. These define if the pattern text should take the case of the string it is matching against into consideration or not. ## Filter Parameters The Regex filter requires two mandatory parameters to be defined. ### Match A parameter that can be used to match text in the SQL statement which should be replaced. match=TYPE[ ]*= If the filter option ignorecase is used all regular expressions are evaluated with the option to ignore the case of the text, therefore a match option of select will match both type, TYPE and any form of the word with upper or lowercase characters. ### Replace The replace parameter defines the text that should replace the text in the SQL text which matches the match. replace=ENGINE = ### Source The optional source parameter defines an address that is used to match against the address from which the client connection to MaxScale originates. Only sessions that originate from this address will have the match and replacement applied to them. source=127.0.0.1 ### User The optional user parameter defines a user name that is used to match against the user from which the client connection to MaxScale originates. Only sessions that are connected using this username will have the match and replacement applied to them. user=john ## Examples ### Example 1 - Replace MySQL 5.1 create table syntax with that for later versions MySQL 5.1 used the parameter TYPE = to set the storage engine that should be used for a table. In later versions this changed to be ENGINE =. Imagine you have an application that you can not change for some reason, but you wish to migrate to a newer version of MySQL. The regexfilter can be used to transform the create table statments into the form that could be used by MySQL 5.5 [CreateTableFilter] type=filter module=regexfilter options=ignorecase match=TYPE[ ]*= replace=ENGINE=