SQL::Translator::Schema::Index.3pm

Langue: en

Version: 2010-06-03 (ubuntu - 24/10/10)

Section: 3 (Bibliothèques de fonctions)

NAME

SQL::Translator::Schema::Index - SQL::Translator index object

SYNOPSIS

   use SQL::Translator::Schema::Index;
   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 ] );
 
   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 options (e.g., ``using'' or ``where'' for PG). Returns

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