Which will of course only work if your database supports this function.
See L<DBIx::Class::ResultSetColumn> for more documentation.
+=head2 Creating a result set from a set of rows
+
+Sometimes you have a (set of) row objects that you want to put into a
+resultset without the need to hit the DB again. You can do that by using the
+L<set_cache|DBIx::Class::Resultset/set_cache> method:
+
+ my @uploadable_groups;
+ while (my $group = $groups->next) {
+ if ($group->can_upload($self)) {
+ push @uploadable_groups, $group;
+ }
+ }
+ my $new_rs = $self->result_source->resultset;
+ $new_rs->set_cache(\@uploadable_groups);
+ return $new_rs;
+
+
=head1 USING RELATIONSHIPS
=head2 Create a new row in a related table
->update({ somecolumn => \'othercolumn' })
+But note that when using a scalar reference the column in the database
+will be updated but when you read the value from the object with e.g.
+
+ ->somecolumn()
+
+you still get back the scalar reference to the string, B<not> the new
+value in the database. To get that you must refresh the row from storage
+using C<discard_changes()>. Or chain your function calls like this:
+
+ ->update->discard_changes
+
+ to update the database and refresh the object in one step.
+
=item .. store JSON/YAML in a column and have it deflate/inflate automatically?
You can use L<DBIx::Class::InflateColumn> to accomplish YAML/JSON storage transparently.
use base 'DBIx::Class';
use Class::Inspector;
-=head1 NAME
-
-DBIx::Class::ResultSetManager - helpful methods for managing resultset
-classes (EXPERIMENTAL)
-
-=head1 SYNOPSIS
+warn "DBIx::Class::ResultSetManager never left experimental status and
+has now been DEPRECATED. This module will be deleted in 09000 so please
+migrate any and all code using it to explicit resultset classes using either
+__PACKAGE__->resultset_class(...) calls or by switching from using
+DBIx::Class::Schema->load_classes() to load_namespaces() and creating
+appropriate My::Schema::ResultSet::* classes for it to pick up.";
- # in a table class
- __PACKAGE__->load_components(qw/ResultSetManager Core/); # note order!
-
- # will be removed from the table class and inserted into a
- # table-specific resultset class
- sub search_by_year_desc : ResultSet {
- my $self = shift;
- my $cond = shift;
- my $attrs = shift || {};
- $attrs->{order_by} = 'year DESC';
- $self->search($cond, $attrs);
- }
+=head1 NAME
- $rs = $schema->resultset('CD')->search_by_year_desc({ artist => 'Tool' });
+DBIx::Class::ResultSetManager - scheduled for deletion in 09000
=head1 DESCRIPTION
-This package implements two useful features for customizing resultset
-classes. C<load_resultset_components> loads components in addition to
-C<DBIx::Class::ResultSet> (or whatever you set as
-C<base_resultset_class>). Any methods tagged with the C<ResultSet>
-attribute will be moved into a table-specific resultset class (by
-default called C<Class::_resultset>, but configurable via
-C<table_resultset_class_suffix>). Most of the magic is done when you
-call C<< __PACKAGE__->table >>.
+DBIx::Class::ResultSetManager never left experimental status and
+has now been DEPRECATED. This module will be deleted in 09000 so please
+migrate any and all code using it to explicit resultset classes using either
+__PACKAGE__->resultset_class(...) calls or by switching from using
+DBIx::Class::Schema->load_classes() to load_namespaces() and creating
+appropriate My::Schema::ResultSet::* classes for it to pick up.";
=cut
__PACKAGE__->base_resultset_class('DBIx::Class::ResultSet');
__PACKAGE__->table_resultset_class_suffix('::_resultset');
-=head2 table
-
-Stacks on top of the normal L<DBIx::Class> C<table> method. Any
-methods tagged with the C<ResultSet> attribute will be moved into a
-table-specific resultset class (by default called
-C<Class::_resultset>, but configurable via
-C<table_resultset_class_suffix>). The magic for this is done within
-this C<< __PACKAGE__->table >> call.
-
-=cut
-
sub table {
my ($self,@rest) = @_;
my $ret = $self->next::method(@rest);
return $ret;
}
-=head2 load_resultset_components
-
-C<load_resultset_components> loads components in addition to
-C<DBIx::Class::ResultSet> (or whatever you set as
-C<base_resultset_class>).
-
-=cut
-
sub load_resultset_components {
my ($self,@comp) = @_;
my $resultset_class = $self->_setup_resultset_class;
}
1;
-
-=head1 AUTHORS
-
-David Kamholz <dkamholz@cpan.org>
-
-=head1 LICENSE
-
-You may distribute this code under the same terms as Perl itself.
-
-=cut