[Bast-commits] r9382 - in DBIx-Class/0.08/trunk: . lib/DBIx/Class t/resultset

ribasushi at dev.catalyst.perl.org ribasushi at dev.catalyst.perl.org
Sat May 15 15:50:57 GMT 2010


Author: ribasushi
Date: 2010-05-15 16:50:57 +0100 (Sat, 15 May 2010)
New Revision: 9382

Modified:
   DBIx-Class/0.08/trunk/Changes
   DBIx-Class/0.08/trunk/lib/DBIx/Class/ResultSet.pm
   DBIx-Class/0.08/trunk/t/resultset/update_delete.t
Log:
Fix stupid typo-bug

Modified: DBIx-Class/0.08/trunk/Changes
===================================================================
--- DBIx-Class/0.08/trunk/Changes	2010-05-15 15:01:10 UTC (rev 9381)
+++ DBIx-Class/0.08/trunk/Changes	2010-05-15 15:50:57 UTC (rev 9382)
@@ -20,11 +20,13 @@
           the unsafe_subselect_ok attribute, due to optimized queries
         - Fix as_subselect_rs to not inject resultset class-wide where
           conditions outside of the resulting subquery
+        - Fix nasty potentially data-eating bug when deleting/updating
+          a limited resultset
         - Depend on optimized SQL::Abstract (faster SQL generation)
-        - update on row not in database now OK if no changes - 
-          fixes problems with cascaded unnecessary updates
+        - update() on row not in_storage no longer throws an exception
+          if there are no dirty columns to update (fixes cascaded update
+          annoyances)
 
-
 0.08121 2010-04-11 18:43:00 (UTC)
         - Support for Firebird RDBMS with DBD::InterBase and ODBC
         - Add core support for INSERT RETURNING (for storages that

Modified: DBIx-Class/0.08/trunk/lib/DBIx/Class/ResultSet.pm
===================================================================
--- DBIx-Class/0.08/trunk/lib/DBIx/Class/ResultSet.pm	2010-05-15 15:01:10 UTC (rev 9381)
+++ DBIx-Class/0.08/trunk/lib/DBIx/Class/ResultSet.pm	2010-05-15 15:50:57 UTC (rev 9382)
@@ -1424,7 +1424,7 @@
   my $cond = $rsrc->schema->storage->_strip_cond_qualifiers ($self->{cond});
 
   my $needs_group_by_subq = $self->_has_resolved_attr (qw/collapse group_by -join/);
-  my $needs_subq = $needs_group_by_subq || (not defined $cond) || $self->_has_resolved_attr(qw/row offset/);
+  my $needs_subq = $needs_group_by_subq || (not defined $cond) || $self->_has_resolved_attr(qw/rows offset/);
 
   if ($needs_group_by_subq or $needs_subq) {
 

Modified: DBIx-Class/0.08/trunk/t/resultset/update_delete.t
===================================================================
--- DBIx-Class/0.08/trunk/t/resultset/update_delete.t	2010-05-15 15:01:10 UTC (rev 9381)
+++ DBIx-Class/0.08/trunk/t/resultset/update_delete.t	2010-05-15 15:50:57 UTC (rev 9382)
@@ -6,9 +6,6 @@
 use Test::Exception;
 use DBICTest;
 
-#plan tests => 5;
-plan 'no_plan';
-
 my $schema = DBICTest->init_schema();
 
 my $tkfks = $schema->resultset('FourKeys_to_TwoKeys');
@@ -110,3 +107,10 @@
 $sub_rs->delete;
 
 is ($tkfks->count, $tkfk_cnt -= 2, 'Only two rows deleted');
+
+# make sure limit-only deletion works
+cmp_ok ($tkfk_cnt, '>', 1, 'More than 1 row left');
+$tkfks->search ({}, { rows => 1 })->delete;
+is ($tkfks->count, $tkfk_cnt -= 1, 'Only one row deleted');
+
+done_testing;




More information about the Bast-commits mailing list