NAME

Alzabo::Column - Column objects

SYNOPSIS

use Alzabo::Column;

foreach my $c ($table->columns)
{
    print $c->name;
}

DESCRIPTION

This object represents a column. It holds data specific to a column.

METHODS

table

Returns the table object to which this column belongs.

name

Returns the column's name as a string.

nullable

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

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.

type

Returns the column's type as a string.

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.

default

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

default_is_raw

Returns true if the default is intended to be provided to the DBMS as-is, without quoting, fore example NOW() or current_timestamp.

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.

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_integer

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

is_floating_point

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_date

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

is_datetime

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

is_time

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

is_time_interval

Returns a boolean value indicating whether the column is a time interval type column.

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.

generic_type

This methods returns one of the following strings:

integer
floating_point
character
date
datetime
time
blob
unknown

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::ColumnDefinition object which holds this column's type information.

comment

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

AUTHOR

Dave Rolsky, <autarch@urth.org>