Sets or gets the storage backend. Defaults to L<DBIx::Class::Storage::DBI>.
-=head2 class_resolver ****DEPRECATED****
+=head2 class_resolver
+
+****DEPRECATED****
Sets or gets the class to use for resolving a class. Defaults to
L<DBIx::Class::ClassResolver::Passthrough>, which returns whatever you give
whereas C<might_have> uses a left join.
-=head2 many_to_many
-
+=head2 many_to_many
+
__PACKAGE__->many_to_many( 'accessorname' => 'a_to_b', 'table_b' );
my @f_objs = $obj_a->accessorname;
=back
-=head2 register_relationship($relname, $rel_info)
+=head2 register_relationship
+
+=head3 Arguments: ($relname, $rel_info)
Registers a relationship on the class
=head1 METHODS
-=head2 new($source, \%$attrs)
+=head2 new
+
+=head3 Arguments: ($source, \%$attrs)
The resultset constructor. Takes a source object (usually a
L<DBIx::Class::ResultSourceProxy::Table>) and an attribute hash (see L</ATRRIBUTES>
return $self->search(\$cond, $attrs);
}
-=head2 find(@colvalues), find(\%cols, \%attrs?)
+=head2 find
+
+=head3 Arguments: (@colvalues) | (\%cols, \%attrs?)
Finds a row based on its primary key or unique constraint. For example:
return $class->search($query, { %$attrs });
}
-=head2 slice($first, $last)
+=head2 slice
+
+=head3 Arguments: ($first, $last)
Returns a subset of elements from the resultset.
return $new;
}
-=head2 result_source
+=head2 result_source
Returns a reference to the result source for this recordset.
return $_[0]->reset->next;
}
-=head2 update(\%values)
+=head2 update
+
+=head3 Arguments: (\%values)
Sets the specified columns in the resultset to the supplied values.
$self->result_source->from, $values, $self->{cond});
}
-=head2 update_all(\%values)
+=head2 update_all
+
+=head3 Arguments: (\%values)
Fetches all objects and updates them one at a time. Note that C<update_all>
will run cascade triggers while L</update> will not.
$self->{count}, $attrs->{rows}, $self->{page});
}
-=head2 page($page_num)
+=head2 page
+
+=head3 Arguments: ($page_num)
Returns a new resultset for the specified page.
return (ref $self)->new($self->result_source, $attrs);
}
-=head2 new_result(\%vals)
+=head2 new_result
+
+=head3 Arguments: (\%vals)
Creates a result in the resultset's result class.
$obj;
}
-=head2 create(\%vals)
+=head2 create
+
+=head3 Arguments: (\%vals)
Inserts a record into the resultset and returns the object.
return $self->new_result($attrs)->insert;
}
-=head2 find_or_create(\%vals, \%attrs?)
+=head2 find_or_create
+
+=head3 Arguments: (\%vals, \%attrs?)
$class->find_or_create({ key => $val, ... });
Which column(s) to order the results by. This is currently passed through
directly to SQL, so you can give e.g. C<foo DESC> for a descending order.
-=head2 cols (arrayref)
+=head2 cols
+
+=head3 Arguments: (arrayref)
Shortcut to request a particular set of columns to be retrieved. Adds
C<me.> onto the start of any column without a C<.> in it and sets C<select>
from that, then auto-populates C<as> from C<select> as normal.
-=head2 include_columns (arrayref)
+=head2 include_columns
+
+=head3 Arguments: (arrayref)
Shortcut to include additional columns in the returned results - for example
would add a 'name' column to the information passed to object inflation
-=head2 select (arrayref)
+=head2 select
+
+=head3 Arguments: (arrayref)
Indicates which columns should be selected from the storage. You can use
column names, or in the case of RDBMS back ends, function or stored procedure
attribute, the column names returned are storage-dependent. E.g. MySQL would
return a column named C<count(column_to_count)> in the above example.
-=head2 as (arrayref)
+=head2 as
+
+=head3 Arguments: (arrayref)
Indicates column names for object inflation. This is used in conjunction with
C<select>, usually when C<select> contains one or more function or stored
If you want to fetch related objects from other tables as well, see C<prefetch>
below.
-=head2 prefetch arrayref/hashref
+=head2 prefetch
+
+=head3 Arguments: arrayref/hashref
Contains one or more relationships that should be fetched along with the main
query (when they are accessed afterwards they will have already been
C<has_one> (or if you're using C<add_relationship>, any relationship declared
with an accessor type of 'single' or 'filter').
-=head2 from (arrayref)
+=head2 from
+
+=head3 Arguments: (arrayref)
The C<from> attribute gives you manual control over the C<FROM> clause of SQL
statements generated by L<DBIx::Class>, allowing you to express custom C<JOIN>
Can also be used to simulate an SQL C<LIMIT>.
-=head2 group_by (arrayref)
+=head2 group_by
+
+=head3 Arguments: (arrayref)
A arrayref of columns to group by. Can include columns of joined tables.
return exists $self->_columns->{$column};
}
-=head2 column_info
+=head2 column_info
my $info = $obj->column_info($col);
return @{$self->{_ordered_columns}||[]};
}
-=head2 set_primary_key(@cols)
+=head2 set_primary_key
+
+=head3 Arguments: (@cols)
Defines one or more columns as primary key for this source. Should be
called after C<add_columns>.
1;
}
-=head2 relationships()
+=head2 relationships
Returns all valid relationship names for this source
return keys %{shift->_relationships};
}
-=head2 relationship_info($relname)
+=head2 relationship_info
+
+=head3 Arguments: ($relname)
Returns the relationship information for the specified relationship name
return $self->_relationships->{$rel};
}
-=head2 has_relationship($rel)
+=head2 has_relationship
+
+=head3 Arguments: ($rel)
Returns 1 if the source has a relationship of this name, 0 otherwise.
return exists $self->_relationships->{$rel};
}
-=head2 resolve_join($relation)
+=head2 resolve_join
+
+=head3 Arguments: ($relation)
Returns the join structure required for the related result source
}
}
-=head2 resolve_condition($cond, $as, $alias|$object)
+=head2 resolve_condition
+
+=head3 Arguments: ($cond, $as, $alias|$object)
Resolves the passed condition to a concrete query fragment. If given an alias,
returns a join condition; if given an object, inverts that object to produce
}
}
-=head2 resolve_prefetch (hashref/arrayref/scalar)
+=head2 resolve_prefetch
+
+=head3 Arguments: (hashref/arrayref/scalar)
Accepts one or more relationships for the current source and returns an
array of column names for each of those relationships. Column names are
}
}
-=head2 related_source($relname)
+=head2 related_source
+
+=head3 Arguments: ($relname)
Returns the result source object for the given relationship
Accessor to the ResultSource this object was created from
-=head2 register_column($column, $column_info)
+=head2 register_column
+
+=head3 Arguments: ($column, $column_info)
Registers a column on the class. If the column_info has an 'accessor' key,
creates an accessor named after the value if defined; if there is no such
=head1 METHODS
-=head2 register_class <moniker> <component_class>
+=head2 register_class
+
+=head3 Arguments: <moniker> <component_class>
Registers a class which isa ResultSourceProxy; equivalent to calling
$self->register_source($moniker => $to_register->result_source_instance);
}
-=head2 register_source <moniker> <result source>
+=head2 register_source
+
+=head3 Arguments: <moniker> <result source>
Registers the result source in the schema with the given moniker
return $self->source($moniker)->resultset;
}
-=head2 load_classes [<classes>, (<class>, <class>), {<namespace> => [<classes>]}]
+=head2 load_classes
+
+=head3 Arguments: [<classes>, (<class>, <class>), {<namespace> => [<classes>]}]
Uses L<Module::Find> to find all classes under the database class' namespace,
or uses the classes you select. Then it loads the component (using L<use>),
}
}
-=head2 compose_connection <target> <@db_info>
+=head2 compose_connection
+
+=head3 Arguments: <target> <@db_info>
This is the most important method in this class. it takes a target namespace,
as well as dbh connection info, and creates a L<DBIx::Class::DB> class as
return $schema;
}
-=head2 setup_connection_class <$target> <@info>
+=head2 setup_connection_class
+
+=head3 Arguments: <$target> <@info>
Sets up a database connection class to inject between the schema
and the subclasses the schema creates.
$target->connection(@info);
}
-=head2 connection(@args)
+=head2 connection
+
+=head3 Arguments: (@args)
Instantiates a new Storage object of type storage_type and passes the
arguments to $storage->connect_info. Sets the connection in-place on
return $self;
}
-=head2 connect(@info)
+=head2 connect
+
+=head3 Arguments: (@info)
Conveneience method, equivalent to $schema->clone->connection(@info)
return $clone;
}
-=head2 populate($moniker, \@data);
+=head2 populate
+
+=head3 Arguments: ($moniker, \@data);
Populates the source registered with the given moniker with the supplied data.
@data should be a list of listrefs, the first containing column names, the
$class->sql__create_me($class->create_sql)->execute unless @vals;
}
-=head2 create_sql (abstract)
+=head2 create_sql
+
+This is an abstract method you must override.
sub create_sql {
return q{