NAME
SQL::Translator::Schema::Index - SQL::Translator index object
SYNOPSIS
my
$index
= SQL::Translator::Schema::Index->new(
name
=>
'foo'
,
fields
=> [ id ],
type
=>
'unique'
,
);
DESCRIPTION
SQL::Translator::Schema::Index
is the index object.
Primary and unique keys are table constraints, not indices.
METHODS
new
Object constructor.
my
$schema
= SQL::Translator::Schema::Index->new;
fields
Gets and set the fields the index is on. Accepts a string, list or arrayref; returns an array or array reference. Will unique the field names and keep them in order by the first occurrence of a field name.
$index
->fields(
'id'
);
$index
->fields(
'id'
,
'name'
);
$index
->fields(
'id, name'
);
$index
->fields( [
'id'
,
'name'
] );
$index
->fields(
qw[ id name ]
);
$index
->fields(
id
=> {
name
=>
'name'
,
order_by
=>
'ASC NULLS LAST'
});
my
@fields
=
$index
->fields;
is_valid
Determine whether the index is valid or not.
my
$ok
=
$index
->is_valid;
name
Get or set the index's name.
my
$name
=
$index
->name(
'foo'
);
options
Get or set the index's options (e.g., "using" or "where" for PG). Returns an array or array reference.
my
@options
=
$index
->options;
table
Get or set the index's table object.
my
$table
=
$index
->table;
type
Get or set the index's type.
my
$type
=
$index
->type(
'unique'
);
Get or set the index's type.
Currently there are only four acceptable types: UNIQUE, NORMAL, FULL_TEXT, and SPATIAL. The latter two might be MySQL-specific. While both lowercase and uppercase types are acceptable input, this method returns the type in uppercase.
equals
Determines if this index is the same as another
my
$isIdentical
=
$index1
->equals(
$index2
);
AUTHOR
Ken Youens-Clark <kclark@cpan.org>.