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

NAME  SYNOPSIS  DESCRIPTION  METHODS  new  fields  is_valid  name  options  table  type  equals  AUTHOR 

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 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 <[email protected]>.


Updated 2024-01-29 - jenkler.se | uex.se