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.