Geoffrey
view release on metacpan or search on metacpan
lib/Geoffrey/Converter/SQLite/Index.pm view on Meta::CPAN
package Geoffrey::Converter::SQLite::Index;
use utf8;
use 5.016;
use strict;
use warnings;
$Geoffrey::Converter::SQLite::Index::VERSION = '0.000206';
use parent 'Geoffrey::Role::ConverterType';
sub add {
my ( $self, $params ) = @_;
if ( !$params ) {
require Geoffrey::Exception::General;
Geoffrey::Exception::General::throw_no_params();
}
if ( !$params->{table} ) {
require Geoffrey::Exception::RequiredValue;
Geoffrey::Exception::RequiredValue::throw_table_name();
}
if ( !$params->{column} ) {
require Geoffrey::Exception::RequiredValue;
Geoffrey::Exception::RequiredValue::throw_refcolumn_missing();
}
require Ref::Util;
require Geoffrey::Utils;
return Geoffrey::Utils::replace_spare(
q~CREATE INDEX {0} ON {1} ({2})~,
[ Geoffrey::Utils::add_name(
{ prefix => 'ix',
name => $params->{name},
context => $params->{table}
}
),
$params->{table},
( join ', ',
Ref::Util::is_arrayref( $params->{column} )
? @{ $params->{column} }
: ( $params->{column} )
)
]
);
}
sub drop {
my ( $self, $name ) = @_;
if ( !$name ) {
require Geoffrey::Exception::RequiredValue;
Geoffrey::Exception::RequiredValue::throw_index_name();
}
return qq~DROP INDEX $name~;
}
sub list {
my ( $self, $schema ) = @_;
require Geoffrey::Utils;
return
q~SELECT * FROM ~
. Geoffrey::Utils::add_schema($schema)
. q~sqlite_master WHERE type='index'~;
}
1; # End of Geoffrey::Converter::SQLite::Index
__END__
=pod
=head1 NAME
Geoffrey::Converter::SQLite::Index - SQLite converter type for indexes!
=head1 VERSION
Version 0.000206
=head1 DESCRIPTION
=head1 SYNOPSIS
=head1 SUBROUTINES/METHODS
=head2 add
=head2 drop
=head2 alter
=head2 add_column
=head2 list
=head2 s_list_columns
=head1 DIAGNOSTICS
=head1 CONFIGURATION AND ENVIRONMENT
( run in 1.153 second using v1.01-cache-2.11-cpan-39bf76dae61 )