------------------------------------------------------------
 ** function array_clear

    function array_clear
        p_array_name    varchar(30),
    --
    removes all items from a given array
    --
    returns 1 on success, 0 on failure (if p_array_name does not exist)
    -- 
    see also: array_drop

------------------------------------------------------------
 ** function array_create

    function array_create
        p_array_name varchar(30),
        p_array_size int
    --
    creates a new array, 
    with as many rows as stated by p_array_size.
    --
    returns the array_id
    -- 
    see also: array_size, array_exists

------------------------------------------------------------
 ** function array_drop

    function array_drop
        p_array_name    varchar(30),
    --
    removes all items from a given array and deletes it from the array index
    --
    returns 1 on success, 0 on failure (if p_array_name does not exist)
    -- 
    see also: array_clear

------------------------------------------------------------
 ** function array_exists

    function array_exists
        p_array_name     varchar(30),
    --
    returns true if a given array exists, false otherwise.
    --
    see also: array_create, array_size

------------------------------------------------------------
 ** function array_from_list

    function array_from_list
        p_list       text,
        p_array_name varchar(50)
    --
    creates a new array, or replaces an existing one,
    from the items in a comma separated list.
    --
    It is a shortcut to array_from_list_complete(p_list,p_array_name,",");
    --
    returns the array_name
    -- 
    see also: array_create, array_from_list_complete, 
              array_to_list_complete, array_to_list

------------------------------------------------------------
 ** function array_from_list_complete

    function array_from_list_complete
        p_list       text,
        p_array_name varchar(50),
        p_separator  varchar(10)
    --
    creates a new array, or replaces an existing one,
    from the items in a p_separator separated list.
    --
    returns the array_name
    -- 
    see also: array_create, array_from_list, 
              array_to_list_complete, array_to_list

------------------------------------------------------------
 ** function array_get

    function array_get
        p_array_name     varchar(30),
        p_array_ndx_key  varchar(30)
    --
    retrieves a value from array p_array_name.
    If p_array_ndx_key is a number, then array_get_value_by_index is used,
    otherwise it is treated as a key, and array_get_value_by_key is used.
    (simulates Perl hashes or PHP arrays)
    --
    returns the array value
    -- 
    see also: array_get_value_by_index, array_get_value_by_key

------------------------------------------------------------
 ** function array_get_value_by_index

    function array_get_value_by_index
        p_array_name    varchar(30),
        p_array_index   int
    --
    retrieves a value from array p_array_name at position p_array_index.
    --
    returns the array value
    -- 
    see also: array_get_value_by_key, array_get

------------------------------------------------------------
 ** function array_get_value_by_key

    function array_get_value_by_key
        p_array_name    varchar(30),
        p_array_key     varchar(30)
    --
    retrieves a value from array p_array_name according to the value of p_array_key
    (simulates Perl hashes or PHP arrays)
    --
    returns the array value
    -- 
    see also: array_get_value_by_index, array_get

------------------------------------------------------------
 ** function array_max_index

    function array_max_index
        p_array_name     varchar(30),
    --
    returns the maximum index of a given array (NULL if the array does not exist)
    --
    returns the array maximum index
    -- 
    see also: array_create, array_exists, array_size

------------------------------------------------------------
 ** function array_pop

    function array_pop
        p_array_name     varchar(30),
    --
    returns the last item in an array, and removes it from the array
    (used with array_push, implements a stack)
    --
    see also: array_push, array_shift, array_unshift

------------------------------------------------------------
 ** function array_push

    function array_push
        p_array_name    varchar(30),
        p_array_value   text
    --
    inserts a new item at the end of an array.
    (used with array_pop implements a stack)
    --
    returns the array size
    -- 
    see also: array_shift, array_unshift, array_pop    

------------------------------------------------------------
 ** function array_set

    function array_set
        p_array_name    varchar(30),
        p_array_ndx_key varchar(30),
        p_array_value   text
    --
    inserts or modifies an array item.
    if p_array_ndx_key is a number, it is treated as an index
    and array_set_value_by_key is used.
    If p_array_ndx_key is not a number, then it iss used as a key,
    and array_set_value_by_key is used.
    --
    returns the array size
    -- 
    see also: array_set_value_by_key, array_set_key_by_index, 
        array_set_value_by_index array_setn

------------------------------------------------------------
 ** function array_setn

    function array_setn
        p_array_name    varchar(30),
        p_array_ndx_key varchar(30),
        p_array_value   text
    --
    works exactly like function array_set,
    except that it returns the array_name instead of the
    array size.
    It is useful for concatenating several insertions into 
    a single SQL statement.
        select array_setn( array_setn( array_setn(
                             "test1","keyA", "valueA"),
                                     "keyB", "valueB"),
                                     "keyC", "valueC");
        select array_setn( array_setn( array_setn(
                             "test2",0, "valueA"),
                                     1, "valueB"),
                                     2, "valueC");
    --
    returns the array name
    -- 
    see also: array_set_value_by_key, array_set_key_by_index, 
        array_set_value_by_index, array_set

------------------------------------------------------------
 ** function array_set_key_by_index

    function array_set_key_by_index
        p_array_name    varchar(30),
        p_array_index   int,
        p_array_key     text
    --
    modifies the key of an existing item accessed by index
    --
    returns the 1 on success, 0 on failure
    -- 
    see also: array_set_value_by_key, array_set_value_by_index

------------------------------------------------------------
 ** function array_set_value_by_index

    function array_set_value_by_index
        p_array_name    varchar(30),
        p_array_index   int,
        p_array_value   text
    --
    inserts or modifies an array item at the given index
    --
    returns the array size
    -- 
    see also: array_set_value_by_key, array_set_key_by_index

------------------------------------------------------------
 ** function array_set_value_by_key

    function array_set_value_by_key
        p_array_name  varchar(30),
        p_array_key   varchar(30),
        p_array_value text
    --
    inserts or modifies an array item by key.
    if the array key exists, the original value is modified,
    otherwise, it will be inserted.
    --
    returns the array size 
    --
    see also: array_set_value_by_index, array_set_key_by_index 

------------------------------------------------------------
 ** function array_shift

    function array_shift
        p_array_name     varchar(30),
    --
    returns the first item in an array, and removes it from the array
    (used with array_unshift, implements a queue)
    --
    see also: array_push, array_pop, array_unshift

------------------------------------------------------------
 ** function array_size

    function array_size
        p_array_name     varchar(30),
    --
    returns the size of a given array (NULL if the array does not exist)
    --
    returns the array size
    -- 
    see also: array_create, array_exists

------------------------------------------------------------
 ** function array_to_list

    function array_to_list
        p_array_name    varchar(30)
    --
    converts the array values into a comma separated list.
    It is a shortcut to array_to_list_complete(p_array_name,",");
    --
    returns a new list as a string
    -- 
    see also: array_from_list_complete, array_from_list, array_to_list_complete

------------------------------------------------------------
 ** function array_to_list_complete

    function array_to_list_complete
        p_array_name    varchar(30),
        p_separator     varchar(10)
    --
    converts the array values into a p_separator separated list
    --
    returns a new list as a string
    -- 
    see also: array_from_list_complete, array_from_list, array_to_list

------------------------------------------------------------
 ** function array_unshift

    function array_unshift 
        p_array_name    varchar(30),
        p_array_value   text
    --
    inserts a new item at the beginning of an array.
    (used with array_shift implements a queue)
    --
    returns the array size
    -- 
    see also: array_shift, array_push, array_pop    

------------------------------------------------------------
 ** function fsyntax

    function fsyntax 
        p_function_name  varchar(50)
    --
    returns the syntax of a given function
    (if it has been stored in the syntax table)
    if the same function name is used in different databases,
    then p_function_name could be espressed as "db_name.p_routine_name"
    --
    see also: routine_syntax, psyntax

------------------------------------------------------------
 ** function psyntax

    function psyntax 
        p_procedure_name  varchar(50)
    --
    returns the syntax of a given procedure
    (if it has been stored in the syntax table)
    if the same procedure name is used in different databases,
    then p_routine_name could be espressed as "db_name.p_routine_name"
    --
    see also: routine_syntax, fsyntax

------------------------------------------------------------
 ** function routine_syntax

    function routine_syntax 
        p_db_name       varchar(50),
        p_routine_name  varchar(50),
        p_routine_type  enum("function", "procedure")
    --
    returns the syntax of a given routine
    (if it has been stored in the syntax table)
    --
    see also: fsyntax, psyntax

------------------------------------------------------------
 ** function simple_sp

    function simple_sp
        routine_name       varchar(30),
        parameters_array   varchar(30)
    --
    returns a query to invoke a complex procedure with many parameters,
    using an array as a list of named parameters.
    Named parameters can be mentioned in any order. 
    --
    returns the query with the parameters in the appropriate order.
    --
    see also: procedure simple_sp

------------------------------------------------------------
 ** procedure array_clear

    procedure array_clear
        p_array_name    varchar(30),
    --
    removes all items from a given array
    --
    returns 1 on success, 0 on failure (if p_array_name does not exist)
    -- 
    see also: array_drop

    --
    sets variable @array_clear.

------------------------------------------------------------
 ** procedure array_create

    procedure array_create
        p_array_name varchar(30),
        p_array_size int
    --
    creates a new array, 
    with as many rows as stated by p_array_size.
    --
    returns the array_id
    -- 
    see also: array_size, array_exists

    --
    sets variable @array_create.

------------------------------------------------------------
 ** procedure array_drop

    procedure array_drop
        p_array_name    varchar(30),
    --
    removes all items from a given array and deletes it from the array index
    --
    returns 1 on success, 0 on failure (if p_array_name does not exist)
    -- 
    see also: array_clear

    --
    sets variable @array_drop.

------------------------------------------------------------
 ** procedure array_from_list

    procedure array_from_list
        p_list       text,
        p_array_name varchar(50)
    --
    creates a new array, or replaces an existing one,
    from the items in a comma separated list.
    --
    It is a shortcut to array_from_list_complete(p_list,p_array_name,",");
    --
    returns the array_name
    -- 
    see also: array_create, array_from_list_complete, 
              array_to_list_complete, array_to_list

    --
    sets variable @array_from_list.

------------------------------------------------------------
 ** procedure array_from_list_complete

    procedure array_from_list_complete
        p_list       text,
        p_array_name varchar(50),
        p_separator  varchar(10)
    --
    creates a new array, or replaces an existing one,
    from the items in a p_separator separated list.
    --
    returns the array_name
    -- 
    see also: array_create, array_from_list, 
              array_to_list_complete, array_to_list

    --
    sets variable @array_from_list_complete.

------------------------------------------------------------
 ** procedure array_full_list

    procedure array_full_list
        p_array_name     varchar(30),
    --
    prints a list of all arrays, private first.
    Private arrays are the ones with a name starting with "_"
    --
    see also: array_list

------------------------------------------------------------
 ** procedure array_list

    procedure array_list
        p_array_name     varchar(30),
    --
    prints a list of publicly viewable arrays.
    Private arrays are the ones with a name starting with "_". 
    These are not listed. To see them, use array_full_list.
    --
    see also: array_full_list

------------------------------------------------------------
 ** procedure array_push

    procedure array_push
        p_array_name    varchar(30),
        p_array_value   text
    --
    inserts a new item at the end of an array.
    (used with array_pop implements a stack)
    --
    returns the array size
    -- 
    see also: array_shift, array_unshift, array_pop    

    --
    sets variable @array_push.

------------------------------------------------------------
 ** procedure array_set

    procedure array_set
        p_array_name    varchar(30),
        p_array_ndx_key varchar(30),
        p_array_value   text
    --
    inserts or modifies an array item.
    if p_array_ndx_key is a number, it is treated as an index
    and array_set_value_by_key is used.
    If p_array_ndx_key is not a number, then it iss used as a key,
    and array_set_value_by_key is used.
    --
    returns the array size
    -- 
    see also: array_set_value_by_key, array_set_key_by_index, 
        array_set_value_by_index array_setn

    --
    sets variable @array_set.

------------------------------------------------------------
 ** procedure array_set_key_by_index

    procedure array_set_key_by_index
        p_array_name    varchar(30),
        p_array_index   int,
        p_array_key     text
    --
    modifies the key of an existing item accessed by index
    --
    returns the 1 on success, 0 on failure
    -- 
    see also: array_set_value_by_key, array_set_value_by_index

    --
    sets variable @array_set_key_by_index.

------------------------------------------------------------
 ** procedure array_set_value_by_index

    procedure array_set_value_by_index
        p_array_name    varchar(30),
        p_array_index   int,
        p_array_value   text
    --
    inserts or modifies an array item at the given index
    --
    returns the array size
    -- 
    see also: array_set_value_by_key, array_set_key_by_index

    --
    sets variable @array_set_value_by_index.

------------------------------------------------------------
 ** procedure array_set_value_by_key

    procedure array_set_value_by_key
        p_array_name  varchar(30),
        p_array_key   varchar(30),
        p_array_value text
    --
    inserts or modifies an array item by key.
    if the array key exists, the original value is modified,
    otherwise, it will be inserted.
    --
    returns the array size 
    --
    see also: array_set_value_by_index, array_set_key_by_index 

    --
    sets variable @array_set_value_by_key.

------------------------------------------------------------
 ** procedure array_unshift

    procedure array_unshift 
        p_array_name    varchar(30),
        p_array_value   text
    --
    inserts a new item at the beginning of an array.
    (used with array_shift implements a queue)
    --
    returns the array size
    -- 
    see also: array_shift, array_push, array_pop    

    --
    sets variable @array_unshift.

------------------------------------------------------------
 ** procedure for_each_array_item

    procedure for_each_array_item
        array_name   varchar(30),
        min_index    int,
        max_index    int,
        sql_command  text
    --
    executes a given sql_command for each item of a given
    array, starting at min_index and ending at max_index.
    --
    If an array item is null, execution is stopped, unless
    the user variable @FOR_ARRAY_CONTINUE_ON_NULL is set. 
    --
    This is a shortcut for 
        for_each_array_item_complete(
                array_name,
                min_index,
                max_index,
                sql_command,
                null,
                null,
                "once");
    
    See the syntax of for_each_array_item_complete, for a complete
    explanation.
    --
    see also: for_each_counter, for_once, for_each_counter_complete,
              for_each_table_value_complete, for_each_table_complete
              for_each_array_item_complete for_each_array_item_simple

------------------------------------------------------------
 ** procedure for_each_array_item_complete

    procedure for_each_array_item_complete
        array_name   varchar(30),
        min_index    int,
        max_index    int,
        sql_command  text,
        sql_before   text,
        sql_after    text,
        ba_mode      enum("once","many") 
    --
    executes a given sql_command for each item of a given
    array, starting at min_index and ending at max_index.
    --
    If an array item is null, execution is stopped, unless
    the user variable @FOR_ARRAY_CONTINUE_ON_NULL is set. 
    --
    sql_before and sql_after are commands to be executed 
    before and after the main command. If ba_mode is "once",
    then sql_before is executed once, then all the sequence
    of sql_command according to the counter, and finally
    sql_after is executed. If ba_mode is "many", then sql_before
    and sql_after are executed before and after each sql_command
    within the loop.
    --   
    Each sql command is preprocessed for placeholders, which
    are replaced as follows:
        - $N takes the counter value within the loop
        - $I takes the item name
    --
    User variables:
        - the value of @FOR_COUNTER is used as the counter placeholder
          instead of the default "$N"
        - @FOR_ITEM changes the item placeholder (default: "$I")
        - @FOR_ARRAY_CONTINUE_ON_NULL determines whether the loop should
          stop or go on when a NULL item is processed. The default
          behavior is to exit the loop. If this variable is set, then
          the item value is changed to an empty string, and the loop
          continues.
    --
    see also: for_each_counter, for_once, for_each_counter_complete,
              for_each_table_value_complete, for_each_table_complete

------------------------------------------------------------
 ** procedure for_each_array_item_simple

    procedure for_each_array_item
        array_name   varchar(30),
        sql_command  text
    --
    executes a given sql_command for each item of a given
    array.
    --
    If an array item is null, execution is stopped, unless
    the user variable @FOR_ARRAY_CONTINUE_ON_NULL is set. 
    --
    This is a shortcut for 
        for_each_array_item_complete(
                array_name,
                0,
                array_max_index(array_name),
                sql_command,
                null,
                null,
                "once");
    
    See the syntax of for_each_array_item_complete, for a complete
    explanation.
    --
    see also: for_each_counter, for_once, for_each_counter_complete,
              for_each_table_value_complete, for_each_table_complete
              for_each_array_item_complete for_each_array_item

------------------------------------------------------------
 ** procedure for_each_counter

    procedure for_each_counter
        counter_start   INT,
        counter_end     INT,
        counter_delta   INT,
        sql_command     text

    --
    executes a given sql_command using a counter,
    starting at counter_start, incrementing it by
    counter_delta units until it reaches counter_end.
    --   
    Each sql command is preprocessed for placeholders, which
    are replaced as follows:
        $N takes the counter value within the loop
    --
    User variables:
        the value of @FOR_COUNTER is used as the counter placeholder
        instead of the default "$N"
    --
    see also: for_each_counter_complete, for_once, for_each_table_complete,
              for_each_table_value_complete, for_each_array_item_complete

------------------------------------------------------------
 ** procedure for_each_counter_complete

    procedure for_each_counter_complete
        counter_start   INT,
        counter_end     INT,
        counter_delta   INT,
        sql_command     text,
        sql_before      text,
        sql_after       text,
        ba_mode         enum("once","many") 

    --
    executes a given sql_command using a counter,
    starting at counter_start, incrementing it by
    counter_delta units until it reaches counter_end.
    sql_before and sql_after are commands to be executed 
    before and after the main command. If ba_mode is "once",
    then sql_before is executed once, then all the sequence
    of sql_command according to the counter, and finally
    sql_after is executed. If ba_mode is "many", then sql_before
    and sql_after are executed before and after each sql_command
    within the loop.
    --   
    Each sql command is preprocessed for placeholders, which
    are replaced as follows:
        $N takes the counter value within the loop
    --
    User variables:
        the value of @FOR_COUNTER is used as the counter placeholder
        instead of the default "$N"
    --
    see also: for_each_counter, for_once, for_each_table_complete,
              for_each_table_value_complete, for_each_array_item_complete

------------------------------------------------------------
 ** procedure for_each_table

    procedure for_each_table
        db_name         varchar(30), 
        condition_text  varchar(50),
        sql_command     text
    --
    executes a given sql_command for each table of a given
    database.
    This is a shortcut for
         for_each_table_complete(
                db_name,
                condition_text,
                sql_command,
                null,null,"once");
    --
    see syntax of for_each_table_complete, for a detailed
    description of how the condition works and how to use
    placeholders and user variables.
    --
    see also: for_each_counter, for_once, for_each_counter_complete,
              for_each_table_complete, for_each_table_value_complete, 
              for_each_array_item_complete

------------------------------------------------------------
 ** procedure for_each_table_complete

    procedure for_each_table_complete
        db_name         varchar(30), 
        condition_text  varchar(50),
        sql_command     text,
        sql_before      text,
        sql_after       text,
        ba_mode         enum("once","many") 
    --
    executes a given sql_command for each table of a given
    database.
    --
    "condition_text" is a filter to apply to the tables list.
    The filter is against a query to information_schema.tables,
    therefore any condition applicable to such table is acceptable.
    --
    sql_before and sql_after are commands to be executed 
    before and after the main command. If ba_mode is "once",
    then sql_before is executed once, then all the sequence
    of sql_command according to the counter, and finally
    sql_after is executed. If ba_mode is "many", then sql_before
    and sql_after are executed before and after each sql_command
    within the loop.
    --   
    Each sql command is preprocessed for placeholders, which
    are replaced as follows:
        - $N takes the counter value within the loop
        - $D takes the database name
        - $T takes the table name
        - $Y takes the table type
        - $E takes the table engine
        - $R takes the table rows 
    --
    User variables:
        - the value of @FOR_COUNTER is used as the counter placeholder
          instead of the default "$N"
        - @FOR_COUNTER_DELTA changes the counter increment (default: 1)
        - @FOR_DB changes the database placeholder (default: "$D")
        - @FOR_TABLE changes the table placeholder (default: "$T")
        - @FOR_ENGINE changes the engine placeholder (default: "$E")
        - @FOR_TYPE changes the type placeholder (default: "$Y")
        - @FOR_ROWS changes the rows placeholder (default: "$R")
    --
    see also: for_each_counter, for_once, for_each_counter_complete,
              for_each_table_value_complete, for_each_array_item_complete
              for_each_table

------------------------------------------------------------
 ** procedure for_each_table_value

    procedure for_each_table_value
        db_name          varchar(30),
        table_name       varchar(30),
        wanted_col1      varchar(30),
        wanted_col2      varchar(30),
        wanted_col3      varchar(30),
        search_condition text,
        sql_command      text
    --
    executes a given sql_command for each row of a given
    table, according to a given search_condition.
    --
    This is a shortcut for
        for_each_table_value_complete (
            db_name, table_name,
            wanted_col1, wanted_col2, wanted_col3,
            search_condition, sql_command,
            null, null, "once"); 
    See the documentation regarding for_each_table_value_complete,
    for details on the implementation.
    --
    see also: for_each_counter, for_once, for_each_counter_complete,
              for_each_array_item_complete, for_each_table_complete
              for_each_table_value_complete, for_each_table_value_simple

------------------------------------------------------------
 ** procedure for_each_table_value_complete

    procedure for_each_table_value_complete
        db_name          varchar(30),
        table_name       varchar(30),
        wanted_col1      varchar(30),
        wanted_col2      varchar(30),
        wanted_col3      varchar(30),
        search_condition text,
        sql_command      text,
        sql_before       text,
        sql_after        text,
        ba_mode          enum("once","many") 
    --
    executes a given sql_command for each row of a given
    table, according to a given search_condition.
    --
    Notice that, to overcome a present limitation in cursors syntax,
    the table values are copied to a temporary table and then processed 
    from there. Thus, a loop from a large dataset can have a 
    significant overhead.
    --
    sql_before and sql_after are commands to be executed 
    before and after the main command. If ba_mode is "once",
    then sql_before is executed once, then all the sequence
    of sql_command according to the counter, and finally
    sql_after is executed. If ba_mode is "many", then sql_before
    and sql_after are executed before and after each sql_command
    within the loop.
    --   
    Each sql command is preprocessed for placeholders, which
    are replaced as follows:
        - $N takes the counter value within the loop
        - $I1 takes the value of wanted_col1
        - $I2 takes the value of wanted_col2
        - $I3 takes the value of wanted_col3
    --
    User variables:
        - the value of @FOR_COUNTER is used as the counter placeholder
          instead of the default "$N"
        - @FOR_ITEM1 changes the item1 placeholder (default: "$I1")
        - @FOR_ITEM2 changes the item2 placeholder (default: "$I2")
        - @FOR_ITEM3 changes the item3 placeholder (default: "$I3")
    --
    see also: for_each_counter, for_once, for_each_counter_complete,
              for_each_array_item_complete, for_each_table_complete
              for_each_table_value_simple

------------------------------------------------------------
 ** procedure for_each_table_value_simple

    procedure for_each_table_value
        db_name          varchar(30),
        table_name       varchar(30),
        wanted_col       varchar(30),
        search_condition text,
        sql_command      text
    --
    executes a given sql_command for each row of a given
    table, according to a given search_condition.
    --
    This is a shortcut for
        for_each_table_value_complete (
            db_name, table_name,
            wanted_col, null, null,
            search_condition, sql_command,
            null, null, "once"); 
    See the documentation regarding for_each_table_value_complete,
    for details on the implementation.
    --
    see also: for_each_counter, for_once, for_each_counter_complete,
              for_each_array_item_complete, for_each_table_complete
              for_each_table_value_complete, for_each_table_value

------------------------------------------------------------
 ** procedure for_once

    procedure for_once
        sql_command     text

    --
    executes a given sql_command 
    It is a shortcut for 
        for_each_counter(1,1,1,sql_command);
    It is useful when you need to execute a query from a
    string and you do not want to use the longer procedure
    of setting a variable, calling "prepare" and "execute".
    --   
    see also: for_each_counter_complete, for_each_counter, for_each_table_complete,
              for_each_table_value_complete, for_each_array_item_complete

------------------------------------------------------------
 ** procedure my_functions

    procedure my_functions 
        pattern  varchar(30)
    --
    gives a list of functions in the syntax database,
    according to the given pattern.
    The pattern is treated with the REGEXP operator.
    --
    see also: my_routines, my_procedures

------------------------------------------------------------
 ** procedure my_procedures

    procedure my_procedures 
        pattern  varchar(30)
    --
    gives a list of procedures in the syntax database,
    according to the given pattern.
    The pattern is treated with the REGEXP operator.
    --
    see also: my_routines, my_functions

------------------------------------------------------------
 ** procedure my_routines

    procedure my_routines 
        pattern  varchar(30)
    --
    gives a list of routines in the syntax database,
    according to the given pattern.
    The pattern is treated with the REGEXP operator.
    --
    see also: my_procedures, my_functions

------------------------------------------------------------
 ** procedure simple_sp

    procedure simple_sp
        routine_name       varchar(30),
        parameters_array   varchar(30)
    --
    calls a given procedure using an array as a list
    of named parameters. 
    Named parameters can be mentioned in any order. 
    --
    --
    see also: function simple_sp

