MySQL-Util

 view release on metacpan or  search on metacpan

lib/MySQL/Util/Lite/Table.pm  view on Meta::CPAN

package MySQL::Util::Lite::Table;

our $VERSION = '0.01';

use Modern::Perl;
use Moose;
use namespace::autoclean;
use Method::Signatures;
use Data::Printer alias => 'pdump';
use MySQL::Util::Lite::ForeignKey;
use MySQL::Util::Lite::PrimaryKey;
use MySQL::Util::Lite::AlternateKey;

with 'MySQL::Util::Lite::Roles::NewColumn';

has name => (
	is       => 'ro',
	isa      => 'Str',
	required => 1,
);

has schema_name => (
	is       => 'ro',
	isa      => 'Str',
	required => 1,
);

has columns => (
	is      => 'rw',
	isa     => 'ArrayRef[MySQL::Util::Lite::Column]',
	lazy    => 1,
	builder => '_build_columns',
);

has _util => (
	is       => 'ro',
	isa      => 'MySQL::Util',
	required => 1,
);

method get_fq_name {

	return sprintf( '%s.%s', $self->schema_name, $self->name );
}

method get_parent_tables (Str :$column_name) {

	if ($column_name) {
		return $self->_get_column_parent_tables( column_name => $column_name );
	}
	else {
		return $self->_get_parent_tables;
	}
}

method _get_column_parent_tables (Str :$column_name) {

	my %seen;
	my @ret;
	my @fks = $self->get_foreign_keys;

	foreach my $fk (@fks) {
		
		foreach my $con ( @{ $fk->column_constraints } ) {



( run in 0.487 second using v1.01-cache-2.11-cpan-39bf76dae61 )