Provided by: libalzabo-perl_0.92-6_all bug

NAME

       Alzabo::Create::Column - Column objects for use in schema creation

SYNOPSIS

         use Alzabo::Create::Column;

DESCRIPTION

       This object represents a column.  It holds data specific to a column.  Additional data is held in a
       "Alzabo::Create::ColumnDefinition" object, which is used to allow two columns to share a type (which is
       good when two columns in different tables are related as it means that if the type of one is changed, the
       other is also.)

INHERITS FROM

       "Alzabo::Column"

       Note: all relevant documentation from the superclass has been merged into this document.

METHODS

   new
       The constructor accepts the following parameters:

       •   table => "Alzabo::Create::Table" object

       •   name => $name

       •   nullable => 0 or 1 (optional)

           Defaults to false.

       •   sequenced => 0 or 1 (optional)

           Defaults to false.

       •   default => $default (optional)

       •   default_is_raw => $boolean (optional)

           If  "default_is_raw"  is  true, then it will not be quoted when passed to the DBMS in SQL statements.
           This should be used to allow a default which is a function, like "NOW()".

       •   attributes => \@attributes (optional)

       •   length => $length (optional)

       •   precision => $precision (optional)

           One of either ...

       •   type => $type

           ... or ...

       •   definition => "Alzabo::Create::ColumnDefinition" object

       •   comment => $comment

           An optional comment.

       It returns a new "Alzabo::Create::Column" object.

       Throws: "Alzabo::Exception::Params"

   type
       Returns the column's type as a string.

   alter
       This method allows you to change a column's type, length, and precision as a single operation.  It should
       be instead of calling "set_type()" followed by "set_length()".

       It takes the following parameters:

       •   type => $type

       •   length => $length (optional)

       •   precision => $precision (optional)

       Throws: "Alzabo::Exception::Params", "Alzabo::Exception::RDBMSRules"

   set_type ($type)
       Sets the column's type.

       Throws: "Alzabo::Exception::Params", "Alzabo::Exception::RDBMSRules"

   set_table ("Alzabo::Create::Table" object)
       Sets the "Alzabo::Create::Table" object in which this column is located.

       Throws: "Alzabo::Exception::Params"

   name
       Returns the column's name as a string.

   set_name ($name)
       Sets the column's name (a string).

       Throws: "Alzabo::Exception::Params", "Alzabo::Exception::RDBMSRules"

   nullable
       Returns a boolean value indicating whether or not NULLs are allowed in this column.

   set_nullable (0 or 1)
       Sets the nullability of the column (this determines whether nulls are allowed  in  the  column  or  not).
       Must be 0 or 1.

       Throws: "Alzabo::Exception::Params"

   attributes
       A  column's  attributes  are  strings  describing  the column (for example, valid attributes in MySQL are
       'UNSIGNED' or 'ZEROFILL'.

       This method returns a list of strings of such strings.

   has_attribute
       This method can be used to test whether or not a column has a  particular  attribute.   By  default,  the
       check is case-insensitive.

       It takes the following parameters:

       •   attribute => $attribute

       •   case_sensitive => 0 or 1 (defaults to 0)

       It returns a boolean value indicating whether or not the column has this particular attribute.

   set_attributes (@attributes)
       Sets  the column's attributes.  These are strings describing the column (for example, valid attributes in
       MySQL are "PRIMARY KEY" or "AUTO_INCREMENT").

       Throws: "Alzabo::Exception::RDBMSRules"

   add_attribute ($attribute)
       Add an attribute to the column's list of attributes.

       Throws: "Alzabo::Exception::RDBMSRules"

   delete_attribute ($attribute)
       Delete the given attribute from the column's list of attributes.

       Throws: Throws: "Alzabo::Exception::Params", "Alzabo::Exception::RDBMSRules"

   default
       Returns the default value of the column as a string, or undef if there is no default.

   set_default ($default)
       Sets the column's default value.

   length
       Returns the length attribute of the column, or undef if there is none.

   precision
       Returns the precision attribute of the column, or undef if there is none.

   set_length
       This method takes the following parameters:

       •   length => $length

       •   precision => $precision (optional)

       This method sets the column's length and precision.  The precision parameter  is  optional  (though  some
       column types may require it if the length is set).

       Throws: "Alzabo::Exception::RDBMSRules"

   sequenced
       The  meaning  of  a sequenced column varies from one RDBMS to another.  In those with sequences, it means
       that a sequence is created and that values for this column will be drawn from it for  inserts  into  this
       table.  In databases without sequences, the nearest analog for a sequence is used (in MySQL the column is
       given the AUTO_INCREMENT attribute, in Sybase the identity attribute).

       In general, this only has meaning for the primary key column of a table with a single column primary key.
       Setting   the   column  as  sequenced  means  its  value  never  has  to  be  provided  to  when  calling
       "Alzabo::Runtime::Table->insert".

       Returns a boolean value indicating whether or not this column is sequenced.

   set_sequenced (0 or 1)
       Sets the value of the column's sequenced attribute.

       Throws: "Alzabo::Exception::Params", "Alzabo::Exception::RDBMSRules"

   is_primary_key
       Returns a boolean value indicating whether or not this column is part of its table's primary key.

   is_numeric
       Returns a boolean value indicating whether the column is a numeric type column.

   is_character
       Returns a boolean value indicating whether the column is a character type column.

       This is true only for any columns which are defined to hold text data, regardless of size.

   is_blob
       Returns a boolean value indicating whether the column is a blob column.

       This is true for any columns defined to hold binary data, regardless of size.

   definition
       The definition object is very rarely of interest.  Use the "type()" method if you are only interested  in
       the column's type.

       This  methods  returns  the  "Alzabo::Create::ColumnDefinition"  object  which  holds  this column's type
       information.

   set_definition ("Alzabo::Create::ColumnDefinition" object)
       Sets the "Alzabo::Create::ColumnDefinition" object which holds this column's type information.

   former_name
       If the column's name has been changed since the last  time  the  schema  was  instantiated,  this  method
       returns the column's previous name.

   comment
       Returns the comment associated with the column object, if any.

   set_comment ($comment)
       Set the comment for the column object.

perl v5.34.0                                       2022-06-14                        Alzabo::Create::Column(3pm)