Alzabo (version 0.92)

Doc index

TOC | Top

NAME

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

TOC | Top

SYNOPSIS

  use Alzabo::Create::Column;
TOC | Top

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.)

TOC | Top

INHERITS FROM

Alzabo::Column

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

TOC | Top

METHODS

new

The constructor accepts the following parameters:

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

Throws: Alzabo::Exception::Params

TOC | Top

type

Returns the column's type as a string.

TOC | Top

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:

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

TOC | Top

set_type ($type)

Sets the column's type.

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

TOC | Top

set_table (Alzabo::Create::Table object)

Sets the Alzabo::Create::Table object in which this column is located.

Throws: Alzabo::Exception::Params

TOC | Top

name

Returns the column's name as a string.

TOC | Top

set_name ($name)

Sets the column's name (a string).

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

TOC | Top

nullable

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

TOC | Top

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

TOC | Top

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.

TOC | Top

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:

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

TOC | Top

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

TOC | Top

add_attribute ($attribute)

Add an attribute to the column's list of attributes.

Throws: Alzabo::Exception::RDBMSRules

TOC | Top

delete_attribute ($attribute)

Delete the given attribute from the column's list of attributes.

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

TOC | Top

default

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

TOC | Top

set_default ($default)

Sets the column's default value.

TOC | Top

length

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

TOC | Top

precision

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

TOC | Top

set_length

This method takes the following parameters:

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

TOC | Top

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.

TOC | Top

set_sequenced (0 or 1)

Sets the value of the column's sequenced attribute.

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

TOC | Top

is_primary_key

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

TOC | Top

is_numeric

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

TOC | Top

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.

TOC | Top

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.

TOC | Top

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.

TOC | Top

set_definition (Alzabo::Create::ColumnDefinition object)

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

TOC | Top

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.

TOC | Top

comment

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

TOC | Top

set_comment ($comment)

Set the comment for the column object.


Table of Contents

- NAME
- SYNOPSIS
- DESCRIPTION
- INHERITS FROM
- METHODS
      - new
                  - table => Alzabo::Create::Table object
                  - name => $name
                  - nullable => 0 or 1 (optional)
                  - sequenced => 0 or 1 (optional)
                  - default => $default (optional)
                  - default_is_raw => $boolean (optional)
                  - attributes => \@attributes (optional)
                  - length => $length (optional)
                  - precision => $precision (optional)
                  - type => $type
                  - definition => Alzabo::Create::ColumnDefinition object
                  - comment => $comment
      - type
      - alter
                  - type => $type
                  - length => $length (optional)
                  - precision => $precision (optional)
      - set_type ($type)
      - set_table (Alzabo::Create::Table object)
      - name
      - set_name ($name)
      - nullable
      - set_nullable (0 or 1)
      - attributes
      - has_attribute
                  - attribute => $attribute
                  - case_sensitive => 0 or 1 (defaults to 0)
      - set_attributes (@attributes)
      - add_attribute ($attribute)
      - delete_attribute ($attribute)
      - default
      - set_default ($default)
      - length
      - precision
      - set_length
                  - length => $length
                  - precision => $precision (optional)
      - sequenced
      - set_sequenced (0 or 1)
      - is_primary_key
      - is_numeric
      - is_character
      - is_blob
      - definition
      - set_definition (Alzabo::Create::ColumnDefinition object)
      - former_name
      - comment
      - set_comment ($comment)