NAME
Teng::Row - Teng's Row class
METHODS
- $row = Teng::Row->new
-
create new Teng::Row's instance
- $row->get($col)
-
my $val = $row->get($column_name); # alias my $val = $row->$column_name;
get a column value from a row object.
Note: This method inflates values.
- $row->set($col, $val)
-
$row->set($col => $val);
set column data.
Note: This method deflates values.
- $row->get_column($column_name)
-
my $val = $row->get_column($column_name);
get a column value from a row object.
Note: This method does not inflate values.
- $row->get_columns
-
my $data = $row->get_columns;
Does
get_column
, for all column values.Note: This method does not inflate values.
- $row->set_columns(\%new_row_data)
-
$row->set_columns({$col => $val});
set columns data.
Note: This method does not deflate values.
- $row->set_column($col => $val)
-
$row->set_column($col => $val); # alias $row->$col($val);
set column data.
Note: This method does not deflate values.
- $row->get_dirty_columns
-
returns those that have been changed.
- $row->is_changed
-
returns true, If the row object have a updated column.
- $row->update([$arg : HashRef, $where : HashRef])
-
update is executed for instance record.
It works by schema in which primary key exists.
$row->update({name => 'tokuhirom'}); # or $row->set({name => 'tokuhirom'}); $row->update;
If
$arg
is supplied, each pairs are passed toset()
method before update.If
$where
is supplied, each pairs to be merged into default (primary keys) WHERE condition. It is useful for optimistic lock.$row = $teng->single(table_name, {id => 1}); $result = $row->update({point => 2}, {point => 1}); # UPDATE table_name SET point = 2 WHERE id = 1 AND point = 1;
- $row->delete
-
delete is executed for instance record.
It works by schema in which primary key exists.
- my $refetched_row = $row->refetch([$opt:HashRef]);
-
refetch record from database. get new row object.
You can specify
$opt
like{ for_update => 1}
optionally, which is used to build query. - $row->handle
-
get Teng object.
$row->handle->single('table', {id => 1});
NOTE FOR COLUMN NAME METHOD
Teng::Row has methods that have name from column name. For example, if a table has column named 'foo', Teng::Row instance of it has method 'foo'.
This method has different behave for setter or getter as following:
# (getter) is alias of $row->get('foo')
# so this method returns inflated value.
my $inflated_value = $row->foo;
# (setter) is alias of $row->set_column('foo', $raw_value)
# so this method does not deflate the value. This only accepts raw value but inflated object.
$row->foo($raw_value);
This behave is from historical reason. You should use column name methods with great caution, if you want to use this.