| Class-DBI documentation | Contained in the Class-DBI distribution. |
Class::DBI::Column - A column in a table
my $column = Class::DBI::Column->new($name);
my $name = $column->name;
my @groups = $column->groups;
my $pri_col = $colg->primary;
if ($column->in_database) { ... }
Each Class::DBI class maintains a list of its columns as class data. This provides an interface to those columns. You probably shouldn't be dealing with this directly.
my $column = Class::DBI::Column->new($column)
A new object for this column.
| Class-DBI documentation | Contained in the Class-DBI distribution. |
package Class::DBI::Column;
use strict; use base 'Class::Accessor::Fast'; use Carp; __PACKAGE__->mk_accessors( qw/name accessor mutator placeholder is_constrained/ ); use overload '""' => sub { shift->name_lc }, fallback => 1;
sub new { my $class = shift; my $name = shift or croak "Column needs a name"; my $opt = shift || {}; return $class->SUPER::new( { name => $name, accessor => $name, mutator => $name, _groups => {}, placeholder => '?', %$opt, } ); } sub name_lc { lc shift->name } sub add_group { my ($self, $group) = @_; $self->{_groups}->{$group} = 1; } sub groups { my $self = shift; my %groups = %{ $self->{_groups} }; delete $groups{All} if keys %groups > 1; return keys %groups; } sub in_database { return !scalar grep $_ eq "TEMP", shift->groups; } 1;