SQL::Translator::Schema::Field - SQL::Translator field object |
SQL::Translator::Schema::Field - SQL::Translator field object
use SQL::Translator::Schema::Field; my $field = SQL::Translator::Schema::Field->new( name => 'foo', table => $table, );
SQL::Translator::Schema::Field
is the field object.
Object constructor.
my $field = SQL::Translator::Schema::Field->new( name => 'foo', table => $table, );
Get or set the comments on a field. May be called several times to set and it will accumulate the comments. Called in an array context, returns each comment individually; called in a scalar context, returns all the comments joined on newlines.
$field->comments('foo'); $field->comments('bar'); print join( ', ', $field->comments ); # prints "foo, bar"
Get or set the field's data type.
my $data_type = $field->data_type('integer');
Get or set the field's default value. Will return undef if not defined and could return the empty string (it's a valid default value), so don't assume an error like other methods.
my $default = $field->default_value('foo');
Get or set the field's ``extra'' attibutes (e.g., ``ZEROFILL'' for MySQL).
Accepts a hash(ref)
of name/value pairs to store; returns a hash.
$field->extra( qualifier => 'ZEROFILL' ); my %extra = $field->extra;
Get or set the field's foreign key reference;
my $constraint = $field->foreign_key_reference( $constraint );
Get or set the field's is_auto_increment
attribute.
my $is_auto = $field->is_auto_increment(1);
Returns whether or not the field is a foreign key.
my $is_fk = $field->is_foreign_key;
Get or set whether the field can be null. If not defined, then returns ``1'' (assumes the field can be null). The argument is evaluated by Perl for True or False, so the following are eqivalent:
$is_nullable = $field->is_nullable(0); $is_nullable = $field->is_nullable(''); $is_nullable = $field->is_nullable('0');
While this is technically a field constraint, it's probably easier to represent this as an attribute of the field. In order keep things consistent, any other constraint on the field (unique, primary, and foreign keys; checks) are represented as table constraints.
Get or set the field's is_primary_key
attribute. Does not create
a table constraint (should it?).
my $is_pk = $field->is_primary_key(1);
Determine whether the field has a UNIQUE constraint or not.
my $is_unique = $field->is_unique;
Determine whether the field is valid or not.
my $ok = $field->is_valid;
Get or set the field's name.
my $name = $field->name('foo');
The field object will also stringify to its name.
my $setter_name = "set_$field";
Errors (``No field name'') if you try to set a blank name.
Read only method to return the fields name with its table name pre-pended. e.g. ``person.foo''.
Get or set the field's order.
my $order = $field->order(3);
Shortcut to get the fields schema ($field->table->schema) or undef if it doesn't have one.
my $schema = $field->schema;
Get or set the field's size. Accepts a string, array or arrayref of numbers and returns a string.
$field->size( 30 ); $field->size( [ 255 ] ); $size = $field->size( 10, 2 ); print $size; # prints "10,2"
$size = $field->size( '10, 2' ); print $size; # prints "10,2"
Get or set the field's table object. As the table object stringifies this can also be used to get the table name.
my $table = $field->table; print "Table name: $table";
Ken Y. Clark <kclark@cpan.org>.
SQL::Translator::Schema::Field - SQL::Translator field object |