SQL::Translator::Schema::Index - SQL::Translator index object use SQL::Translator::Schema::Index; my $index = SQL::Translator::Schema::Index->new( name => 'foo', fields => [ id ], type => 'unique', ); "SQL::Translator::Schema::Index" is the index object. Primary and unique keys are table constraints, not indices.

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 ] ); 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');

equals
Determines if this index is the same as another my $isIdentical = $index1->equals( $index2 ); Ken Y. Clark <kclark@cpan.org>.