Jeffrey Cohen
and 1 contributors


Genezzo::Havok::Utils - general utility functions


select HavokUse('Genezzo::Havok::Utils') from dual;


The Havok Utils module defines several general utility functions.




To create a user function based upon the function 'somefunc' in Genezzo::Contrib::MyModule just use the module and function named parameters:

  select add_user_function(
             'function=somefunc') from dual;

Simple functions may be defined directly as a single argument which is just a function definition (minus the leading "sub"). For example, the function foobar just adds two to the argument:

  select add_user_function(
             'foobar { my $foo = shift; $foo += 2; return $foo}'
              ) from dual;

More sophisticated functions may need to define the user_function table columns as specified in Genezzo::Havok::UserFunctions. Use the help command:

  select add_user_function('help') from dual;

to list the valid parameters


Undefine an existing function.


Update a tablespace to support large databases. This function supercedes the bigdb.sql script. When called with no arguments:

    select alter_ts() from dual;

the SYSTEM tablespace is set to automatically increase by 50% each time it runs out of space, and the buffer cache size is set to 1000 blocks. When new datafiles are acquired, they will start at 10M and increase by 50% each time they resize.

alter_ts can also take the single argument 'help':

    select alter_ts('help') from dual;

which will cause it to list the named parameters (all of which are optional). The parameters are:

tsname - the tablespace name
increase_by - the amount to increase the current filesize by when it runs out of free space. The value may be a percentage, e.g. 50%, or a fixed size like 100M. If this parameter is set to zero, the tablespace will remain a fixed size.
filesize - the initial size of a new file when it is added to the tablespace. Note that this parameter only affects files which are automatically created, not files added with "addfile".
bufcachesize - the buffer cache size (in number of blocks).

The default settings are equivalent to:

    select alter_ts(
    'bufcachesize=1000') from dual;

The tsname argument may be specified multiple times -- the increase_by and filesize will be applied to each tablespace.


Havok modules are loaded via the HavokUse function. The register_havok_package function is designed to simplify the update of the havok table in order to track the particular version of a package. Currently, there is no requirement that all Havok modules register in the havok table, but future versions of Genezzo may require this registration, or enforce it automatically as part of the HavokUse function. Note that all registered havok packages must have a valid HavokInit function.

  select register_havok_package(
             'version=1.1') from dual;

Use the help command:

  select register_havok_package('help') from dual;

to list the valid parameters




Jeffrey I. Cohen,



Copyright (c) 2006, 2007 Jeffrey I Cohen. All rights reserved.

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA

Address bug reports and comments to:

For more information, please visit the Genezzo homepage at