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


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

Parameters

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 and should be instead of calling set_type followed by set_length.

Parameters

set_type ($type)

Sets the column's type.

set_table (Alzabo::Create::Table object)

Returns/sets the Alzabo::Create::Table object in which this column is located.

name

Returns

The column's name as a string.

set_name ($name)

Returns/sets the column's name (a string).

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

Returns

A list of strings.

has_attribute

Parameters:

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

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

add_attribute ($attribute)

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

delete_attribute ($attribute)

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

Throws

Alzabo::Exception::Params

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

Parameters

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

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

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.

is_blob

Returns

A boolean value indicating whether the column is a blob column.

definition

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

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.

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