2 class SQL::Translator::Object::Column extends SQL::Translator::Object is dirty {
3 use MooseX::Types::Moose qw(Bool Int Maybe ScalarRef Str);
4 use MooseX::MultiMethods;
5 use SQL::Translator::Types qw(Bit ColumnSize Constraint Table Trigger);
9 '""' => sub { shift->name },
10 'bool' => sub { $_[0]->name || $_[0] },
24 trigger => sub { die "Cannot use '' as a column name" if $_[1] eq '' }
34 has 'sql_data_type' => (
46 default => sub { [ 0 ] },
49 has 'is_nullable' => (
56 has 'default_value' => (
58 isa => Maybe[ScalarRef|Str],
61 has 'is_auto_increment' => (
69 has 'is_primary_key' => (
75 has 'is_foreign_key' => (
81 has 'foreign_key_reference' => (
92 $self->$orig(@args) if @args;
93 my @sizes = $self->$orig;
94 return wantarray ? @sizes
98 method full_name { $self->table->name . '.' . $self->name }
99 method schema { $self->table->schema }
104 before name($name?) { die "Can't use column name $name" if $name && $self->table->exists_column($name) && $name ne $self->name; }