Name

PRG-02: Standardize module structure using function and procedure templates

Synopsis

Once you adopt a set of guidelines for how developers should write procedures and functions, you need to help those developers follow their best practices. The bottom line is that guidelines will be followed if you make it easier to follow them than to ignore them.

For module standards, you can use either of the following approaches:

  • Create a static template file that contains the generic logical structure for a procedure and/or function. Developers then copy that file to their own file, “de-genericize” the template by performing search-and-replace operations on placeholder strings with their own specific values (such as table names), and modify it from there.

  • Use a program (one that you’ve written or a commercially available tool) that generates the code you want. This approach can be more flexible and can save you time, depending on how sophisticated a generator you use/create.

Example

Here’s a simple function template that reinforces the single RETURN recommendation and encourages a standard header.

    CREATE FUNCTION f_<name>
      (IN in_<parm> <datatype>)
         RETURNS <datatype>
         DETERMINISTIC
    BEGIN
       /*
        || STANDARD COPYRIGHT STATEMENT HERE
        || Author:
        ||   File:
        ||
        || Modification history:
        */

       DECLARE retval <datatype> DEFAULT <value>
       -- Put your code here

       RETURN retval;

    END

Some third-party products (Toad for MySQL, for instance) allow you to define such a template and have it automatically applied to new stored ...

Get MySQL Stored Procedure Programming now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.