Take me over?
NAME
Alzabo::Runtime::Row - Row objects
SYNOPSIS
use Alzabo::Runtime::Row;
DESCRIPTION
These objects represent actual rows from the database containing actual data. In general, you will want to use the Alzabo::Runtime::Table
object to retrieve rows. The Alzabo::Runtime::Table
object can return either single rows or row cursors.
CACHING
If you load the Alzabo::ObjectCache
module before loading this one, then row objects will be cached, as will database accesses.
METHODS
select (@list_of_column_names)
Returns
Returns a list of values matching the specified columns in a list context. In scalar context it returns only a single value (the first column specified).
If no columns are specified, it will return the values for all of the columns in the table, in the order that are returned by Alzabo::Runtime::Table->columns
.
select_hash (@list_of_column_names)
Returns
Returns a hash of column names to values matching the specified columns.
If no columns are specified, it will return the values for all of the columns in the table.
update (%hash_of_columns_and_values)
Given a hash of columns and values, attempts to update the database to and the object to represent these new values.
delete
Deletes the row from the RDBMS and the cache, if it exists.
id_as_string
Returns the row's id value as a string. This can be passed to the Alzabo::Runtime::Table->row_by_id
method to recreate the row later.
is_live
Indicates whether or not the given row is a real or potential row.
table
Returns the Alzabo::Runtime::Table
object that this row belongs to.
schema
Returns the Alzabo::Runtime::Schema
object that this row's table belongs to. This is a shortcut for $row->table->schema
.
rows_by_foreign_key
Parameters
foreign_key =>
Alzabo::Runtime::ForeignKey
object
Given a foreign key object, this method returns either an Alzabo::Runtime::Row
object or an Alzabo::Runtime::RowCursor
object for the row(s) in the table that to which the relationship exists, based on the value of the relevant column(s) in the current row.
The type of object returned is based on the cardinality of the relationship. If the relationship says that there could only be one matching row, then a row object is returned, otherwise it returns a cursor.
All other parameters given will be passed directly to the new
method (such as the no_cache
parameter).
new
Parameters
table =>
Alzabo::Runtime::Table
objectpk => (see below)
no_cache => 0 or 1
The
id
parameter may be one of two things. If the table has only a single column primary key, it can be a simple scalar with the value of that primary key for this row.If the primary key is more than one column than it must be a hash reference containing column names and values such as:
{ pk_column1 => 1, pk_column2 => 'foo' }
Setting the no_cache
parameter to true causes this particular row object to not interact with the cache at all. This can be useful if you know you will be creating a very large number of row objects all at once that you have no intention of re-using.
If your cache class synchronizes itself across multiple processes does), then it is highly recommended that you not do any operations that change data in the database (delete or update) with objects that were created with this parameter as it will probably cause problems.
Returns
A new Alzabo::Runtime::Row
object. It will attempt to retrieve the row from the cache first unless the no_cache
parameter is true. If no object matches these values then an exception will be thrown.
Throws
AUTHOR
Dave Rolsky, <autarch@urth.org>