[Bast-commits] r4423 - in DBIx-Class/0.08/branches/replication_dedux: . lib/DBIx lib/DBIx/Class lib/DBIx/Class/Manual t

jnapiorkowski at dev.catalyst.perl.org jnapiorkowski at dev.catalyst.perl.org
Wed May 28 18:29:00 BST 2008


Author: jnapiorkowski
Date: 2008-05-28 18:29:00 +0100 (Wed, 28 May 2008)
New Revision: 4423

Modified:
   DBIx-Class/0.08/branches/replication_dedux/
   DBIx-Class/0.08/branches/replication_dedux/Changes
   DBIx-Class/0.08/branches/replication_dedux/lib/DBIx/Class.pm
   DBIx-Class/0.08/branches/replication_dedux/lib/DBIx/Class/Manual/Cookbook.pod
   DBIx-Class/0.08/branches/replication_dedux/lib/DBIx/Class/Manual/FAQ.pod
   DBIx-Class/0.08/branches/replication_dedux/lib/DBIx/Class/ResultSet.pm
   DBIx-Class/0.08/branches/replication_dedux/lib/DBIx/Class/ResultSetManager.pm
   DBIx-Class/0.08/branches/replication_dedux/t/40resultsetmanager.t
Log:
 r13166 at dev (orig r4392):  castaway | 2008-05-19 16:57:25 -0500
 Added doc for "for => update" attribute, thanks StuartL.
 
 r13167 at dev (orig r4393):  castaway | 2008-05-19 16:59:16 -0500
 Oops, =cut after the pod not in the middle
 
 r13272 at dev (orig r4419):  ash | 2008-05-27 05:41:44 -0500
 Update FAQ to mention behavour of scalar refs w.r.t. update
 r13273 at dev (orig r4420):  ash | 2008-05-27 07:49:09 -0500
 Add set_cache example to cookbook
 r13274 at dev (orig r4421):  ash | 2008-05-27 07:50:10 -0500
 Fix var name typo in cookbook
 r13376 at dev (orig r4422):  matthewt | 2008-05-27 08:31:58 -0500
 version bump, deprecated ResultSetManager



Property changes on: DBIx-Class/0.08/branches/replication_dedux
___________________________________________________________________
Name: svk:merge
   - 168d5346-440b-0410-b799-f706be625ff1:/DBIx-Class-current:2207
462d4d0c-b505-0410-bf8e-ce8f877b3390:/local/bast/DBIx-Class:3159
9c88509d-e914-0410-b01c-b9530614cbfe:/local/DBIx-Class:32260
9c88509d-e914-0410-b01c-b9530614cbfe:/local/DBIx-Class-CDBICompat:54993
9c88509d-e914-0410-b01c-b9530614cbfe:/vendor/DBIx-Class:31122
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/cdbicompat_integration:4160
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/file_column:3920
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/on_disconnect_do:3694
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/oracle_sequence:4173
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/savepoints:4223
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/storage-ms-access:4142
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/versioned_enhancements:4125
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/trunk:4381
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/branches/DBIx-Class-C3:318
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/branches/DBIx-Class-current:2222
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/branches/DBIx-Class-joins:173
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/branches/DBIx-Class-resultset:570
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/branches/DBIx-Class/datetime:1716
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/branches/DBIx-Class/find_compat:1855
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/branches/DBIx-Class/find_unique_query_fixes:2142
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/branches/DBIx-Class/inflate:1988
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/branches/DBIx-Class/many_to_many:2025
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/branches/DBIx-Class/re_refactor_bugfix:1944
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/branches/DBIx-Class/reorganize_tests:1827
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/branches/DBIx-Class/resultset-new-refactor:1766
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/branches/DBIx-Class/resultset_2_electric_boogaloo:2175
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/branches/DBIx-Class/resultset_cleanup:2102
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/branches/DBIx-Class/sqlt_tests_refactor:2043
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/trunk/DBIx-Class:3606
fe160bb6-dc1c-0410-9f2b-d64a711b54a5:/local/DBIC-trunk-0.08:10510
   + 168d5346-440b-0410-b799-f706be625ff1:/DBIx-Class-current:2207
462d4d0c-b505-0410-bf8e-ce8f877b3390:/local/bast/DBIx-Class:3159
9c88509d-e914-0410-b01c-b9530614cbfe:/local/DBIx-Class:32260
9c88509d-e914-0410-b01c-b9530614cbfe:/local/DBIx-Class-CDBICompat:54993
9c88509d-e914-0410-b01c-b9530614cbfe:/vendor/DBIx-Class:31122
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/cdbicompat_integration:4160
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/file_column:3920
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/on_disconnect_do:3694
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/oracle_sequence:4173
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/savepoints:4223
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/storage-ms-access:4142
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/versioned_enhancements:4125
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/trunk:4422
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/branches/DBIx-Class-C3:318
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/branches/DBIx-Class-current:2222
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/branches/DBIx-Class-joins:173
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/branches/DBIx-Class-resultset:570
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/branches/DBIx-Class/datetime:1716
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/branches/DBIx-Class/find_compat:1855
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/branches/DBIx-Class/find_unique_query_fixes:2142
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/branches/DBIx-Class/inflate:1988
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/branches/DBIx-Class/many_to_many:2025
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/branches/DBIx-Class/re_refactor_bugfix:1944
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/branches/DBIx-Class/reorganize_tests:1827
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/branches/DBIx-Class/resultset-new-refactor:1766
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/branches/DBIx-Class/resultset_2_electric_boogaloo:2175
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/branches/DBIx-Class/resultset_cleanup:2102
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/branches/DBIx-Class/sqlt_tests_refactor:2043
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/trunk/DBIx-Class:3606
fe160bb6-dc1c-0410-9f2b-d64a711b54a5:/local/DBIC-trunk-0.08:10510

Modified: DBIx-Class/0.08/branches/replication_dedux/Changes
===================================================================
--- DBIx-Class/0.08/branches/replication_dedux/Changes	2008-05-27 13:31:58 UTC (rev 4422)
+++ DBIx-Class/0.08/branches/replication_dedux/Changes	2008-05-28 17:29:00 UTC (rev 4423)
@@ -1,5 +1,6 @@
 Revision history for DBIx::Class
 
+        - mark ResultSetManager as deprecated and undocument it
         - pod fix (RT #32988)
         - add Test::Exception to test requirements (RT #34256)
         - make ash's build_requires/META.yml fixes work better

Modified: DBIx-Class/0.08/branches/replication_dedux/lib/DBIx/Class/Manual/Cookbook.pod
===================================================================
--- DBIx-Class/0.08/branches/replication_dedux/lib/DBIx/Class/Manual/Cookbook.pod	2008-05-27 13:31:58 UTC (rev 4422)
+++ DBIx-Class/0.08/branches/replication_dedux/lib/DBIx/Class/Manual/Cookbook.pod	2008-05-28 17:29:00 UTC (rev 4423)
@@ -763,6 +763,23 @@
 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

Modified: DBIx-Class/0.08/branches/replication_dedux/lib/DBIx/Class/Manual/FAQ.pod
===================================================================
--- DBIx-Class/0.08/branches/replication_dedux/lib/DBIx/Class/Manual/FAQ.pod	2008-05-27 13:31:58 UTC (rev 4422)
+++ DBIx-Class/0.08/branches/replication_dedux/lib/DBIx/Class/Manual/FAQ.pod	2008-05-28 17:29:00 UTC (rev 4423)
@@ -357,6 +357,19 @@
 
  ->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.

Modified: DBIx-Class/0.08/branches/replication_dedux/lib/DBIx/Class/ResultSet.pm
===================================================================
--- DBIx-Class/0.08/branches/replication_dedux/lib/DBIx/Class/ResultSet.pm	2008-05-27 13:31:58 UTC (rev 4422)
+++ DBIx-Class/0.08/branches/replication_dedux/lib/DBIx/Class/ResultSet.pm	2008-05-28 17:29:00 UTC (rev 4423)
@@ -2654,6 +2654,17 @@
     # SELECT child.* FROM person child
     # INNER JOIN person father ON child.father_id = father.id
 
+=head2 for
+
+=over 4
+
+=item Value: ( 'update' | 'shared' )
+
+=back
+
+Set to 'update' for a SELECT ... FOR UPDATE or 'shared' for a SELECT
+... FOR SHARED.
+
 =cut
 
 1;

Modified: DBIx-Class/0.08/branches/replication_dedux/lib/DBIx/Class/ResultSetManager.pm
===================================================================
--- DBIx-Class/0.08/branches/replication_dedux/lib/DBIx/Class/ResultSetManager.pm	2008-05-27 13:31:58 UTC (rev 4422)
+++ DBIx-Class/0.08/branches/replication_dedux/lib/DBIx/Class/ResultSetManager.pm	2008-05-28 17:29:00 UTC (rev 4423)
@@ -4,38 +4,25 @@
 use base 'DBIx::Class';
 use Class::Inspector;
 
+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.";
+
 =head1 NAME
 
-DBIx::Class::ResultSetManager - helpful methods for managing resultset
-classes (EXPERIMENTAL)
+DBIx::Class::ResultSetManager - scheduled for deletion in 09000
 
-=head1 SYNOPSIS
-
-  # 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);
-  }
-
-  $rs = $schema->resultset('CD')->search_by_year_desc({ artist => 'Tool' });
-
 =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
 
@@ -44,17 +31,6 @@
 __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, at rest) = @_;
     my $ret = $self->next::method(@rest);
@@ -65,14 +41,6 @@
     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, at comp) = @_;
     my $resultset_class = $self->_setup_resultset_class;
@@ -119,13 +87,3 @@
 }
 
 1;
-
-=head1 AUTHORS
-
-David Kamholz <dkamholz at cpan.org>
-
-=head1 LICENSE
-
-You may distribute this code under the same terms as Perl itself.
-
-=cut

Modified: DBIx-Class/0.08/branches/replication_dedux/lib/DBIx/Class.pm
===================================================================
--- DBIx-Class/0.08/branches/replication_dedux/lib/DBIx/Class.pm	2008-05-27 13:31:58 UTC (rev 4422)
+++ DBIx-Class/0.08/branches/replication_dedux/lib/DBIx/Class.pm	2008-05-28 17:29:00 UTC (rev 4423)
@@ -24,8 +24,10 @@
 # i.e. first release of 0.XX *must* be 0.XX000. This avoids fBSD ports
 # brain damage and presumably various other packaging systems too
 
-$VERSION = '0.08010';
+$VERSION = '0.08099_01';
 
+$VERSION = eval $VERSION; # numify for warning-free dev releases
+
 sub MODIFY_CODE_ATTRIBUTES {
   my ($class,$code, at attrs) = @_;
   $class->mk_classdata('__attr_cache' => {})

Modified: DBIx-Class/0.08/branches/replication_dedux/t/40resultsetmanager.t
===================================================================
--- DBIx-Class/0.08/branches/replication_dedux/t/40resultsetmanager.t	2008-05-27 13:31:58 UTC (rev 4422)
+++ DBIx-Class/0.08/branches/replication_dedux/t/40resultsetmanager.t	2008-05-28 17:29:00 UTC (rev 4423)
@@ -15,6 +15,11 @@
   }
 }
 
+BEGIN {
+  local $SIG{__WARN__} = sub {};
+  require DBIx::Class::ResultSetManager;
+}
+
 use DBICTest::ResultSetManager; # uses Class::Inspector
 
 my $schema = DBICTest::ResultSetManager->compose_namespace('DB');




More information about the Bast-commits mailing list