[Bast-commits] r5929 - in DBIx-Class/0.08/branches/subclassed_rsset: . lib/DBIx lib/DBIx/Class lib/DBIx/Class/Manual lib/DBIx/Class/Schema lib/DBIx/Class/Storage lib/DBIx/Class/Storage/DBI t t/cdbi t/cdbi/testlib t/lib t/lib/DBICTest t/lib/DBICTest/Schema

ribasushi at dev.catalyst.perl.org ribasushi at dev.catalyst.perl.org
Tue Apr 21 10:57:35 GMT 2009


Author: ribasushi
Date: 2009-04-21 11:57:35 +0100 (Tue, 21 Apr 2009)
New Revision: 5929

Added:
   DBIx-Class/0.08/branches/subclassed_rsset/t/lib/DBICTest/Schema/Demographic.pm
Modified:
   DBIx-Class/0.08/branches/subclassed_rsset/
   DBIx-Class/0.08/branches/subclassed_rsset/Changes
   DBIx-Class/0.08/branches/subclassed_rsset/MANIFEST.SKIP
   DBIx-Class/0.08/branches/subclassed_rsset/Makefile.PL
   DBIx-Class/0.08/branches/subclassed_rsset/lib/DBIx/Class.pm
   DBIx-Class/0.08/branches/subclassed_rsset/lib/DBIx/Class/Componentised.pm
   DBIx-Class/0.08/branches/subclassed_rsset/lib/DBIx/Class/DB.pm
   DBIx-Class/0.08/branches/subclassed_rsset/lib/DBIx/Class/Manual/Cookbook.pod
   DBIx-Class/0.08/branches/subclassed_rsset/lib/DBIx/Class/ResultSet.pm
   DBIx-Class/0.08/branches/subclassed_rsset/lib/DBIx/Class/ResultSource.pm
   DBIx-Class/0.08/branches/subclassed_rsset/lib/DBIx/Class/Schema.pm
   DBIx-Class/0.08/branches/subclassed_rsset/lib/DBIx/Class/Schema/Versioned.pm
   DBIx-Class/0.08/branches/subclassed_rsset/lib/DBIx/Class/Storage.pm
   DBIx-Class/0.08/branches/subclassed_rsset/lib/DBIx/Class/Storage/DBI/SQLite.pm
   DBIx-Class/0.08/branches/subclassed_rsset/lib/DBIx/Class/Storage/TxnScopeGuard.pm
   DBIx-Class/0.08/branches/subclassed_rsset/t/100extra_source.t
   DBIx-Class/0.08/branches/subclassed_rsset/t/19quotes.t
   DBIx-Class/0.08/branches/subclassed_rsset/t/19quotes_newstyle.t
   DBIx-Class/0.08/branches/subclassed_rsset/t/33storage_reconnect.t
   DBIx-Class/0.08/branches/subclassed_rsset/t/39load_namespaces_rt41083.t
   DBIx-Class/0.08/branches/subclassed_rsset/t/66relationship.t
   DBIx-Class/0.08/branches/subclassed_rsset/t/71mysql.t
   DBIx-Class/0.08/branches/subclassed_rsset/t/80unique.t
   DBIx-Class/0.08/branches/subclassed_rsset/t/89inflate_datetime.t
   DBIx-Class/0.08/branches/subclassed_rsset/t/90ensure_class_loaded.t
   DBIx-Class/0.08/branches/subclassed_rsset/t/93single_accessor_object.t
   DBIx-Class/0.08/branches/subclassed_rsset/t/96multi_create_torture.t
   DBIx-Class/0.08/branches/subclassed_rsset/t/cdbi/02-Film.t
   DBIx-Class/0.08/branches/subclassed_rsset/t/cdbi/15-accessor.t
   DBIx-Class/0.08/branches/subclassed_rsset/t/cdbi/22-deflate_order.t
   DBIx-Class/0.08/branches/subclassed_rsset/t/cdbi/testlib/MyBase.pm
   DBIx-Class/0.08/branches/subclassed_rsset/t/lib/DBICTest/Schema.pm
   DBIx-Class/0.08/branches/subclassed_rsset/t/lib/DBICTest/Schema/Genre.pm
   DBIx-Class/0.08/branches/subclassed_rsset/t/lib/sqlite.sql
Log:
 r5847 at Thesaurus (orig r5846):  ribasushi | 2009-03-30 01:05:37 +0200
 Take experimental off TxnScopeGuard
 r5848 at Thesaurus (orig r5847):  ribasushi | 2009-03-30 01:44:40 +0200
 Dev-Release 0.08099_08
 r5852 at Thesaurus (orig r5851):  castaway | 2009-03-31 08:41:42 +0200
 Fix my email address in AUTHOR
 
 r5859 at Thesaurus (orig r5858):  plu | 2009-04-07 16:15:32 +0200
 Added caveat notes to dual trick in cookbook
 r5875 at Thesaurus (orig r5874):  arcanez | 2009-04-09 15:35:46 +0200
 require DBD::SQLite 1.21+
 r5885 at Thesaurus (orig r5884):  caelum | 2009-04-13 14:47:47 +0200
 add test for connect_info hashref
 r5887 at Thesaurus (orig r5886):  pcc | 2009-04-13 20:35:51 +0200
 Correctly propagate forced left joins through arrayrefs and hashrefs
 r5889 at Thesaurus (orig r5888):  caelum | 2009-04-15 15:47:53 +0200
 duplicate
 r5891 at Thesaurus (orig r5890):  plu | 2009-04-17 10:10:19 +0200
 Added update_or_new to ResultSet.pm
 r5903 at Thesaurus (orig r5902):  ilmari | 2009-04-18 20:38:44 +0200
 Don't warn when reregistering a source under the same name
 r5913 at Thesaurus (orig r5912):  matthewt | 2009-04-19 16:52:15 +0200
 0.08100 release
 r5916 at Thesaurus (orig r5915):  arcanez | 2009-04-21 00:07:07 +0200
 move load_optional_class into Class::C3::Componentised
 
 r5923 at Thesaurus (orig r5922):  ribasushi | 2009-04-21 10:37:11 +0200
 New SQLite kicks ass - remove some warning silencers and reinstantiate tests
 r5924 at Thesaurus (orig r5923):  ribasushi | 2009-04-21 10:51:03 +0200
 Multiple cdbi-compat test cleanups
 Clarify search_like deprecation
 r5925 at Thesaurus (orig r5924):  ribasushi | 2009-04-21 10:51:59 +0200
 More author test-requires
 r5926 at Thesaurus (orig r5925):  ribasushi | 2009-04-21 10:53:35 +0200
 t/ janitorial work



Property changes on: DBIx-Class/0.08/branches/subclassed_rsset
___________________________________________________________________
Name: svk:merge
   - 168d5346-440b-0410-b799-f706be625ff1:/DBIx-Class-current:2207
462d4d0c-b505-0410-bf8e-ce8f877b3390:/local/bast/DBIx-Class:3159
4d5fae46-8e6a-4e08-abee-817e9fb894a2:/local/bast/DBIx-Class/0.08/branches/resultsetcolumn_custom_columns:5160
4d5fae46-8e6a-4e08-abee-817e9fb894a2:/local/bast/DBIx-Class/0.08/branches/sqla_1.50_compat:5414
4d5fae46-8e6a-4e08-abee-817e9fb894a2:/local/bast/DBIx-Class/0.08/trunk:5969
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
ab17426e-7cd3-4704-a2a2-80b7c0a611bb:/local/dbic_column_attr:10946
ab17426e-7cd3-4704-a2a2-80b7c0a611bb:/local/dbic_trunk:11142
bd5ac9a7-f185-4d95-9186-dbb8b392a572:/local/os/bast/DBIx-Class/0.08/trunk:2798
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/belongs_to_null_col_fix:5244
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/cdbicompat_integration:4160
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/column_attr:5074
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/complex_join_rels:4589
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/file_column:3920
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/multi_stuff:5565
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/parser_fk_index:4485
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/prefetch:5699
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/replication_dedux:4600
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/rt_bug_41083:5437
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/savepoints:4223
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/sqla_1.50_compat:5321
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/storage-ms-access:4142
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/subquery:5617
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/sybase:5651
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/versioned_enhancements:4125
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/versioning:4578
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/views:5585
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
4d5fae46-8e6a-4e08-abee-817e9fb894a2:/local/bast/DBIx-Class/0.08/branches/resultsetcolumn_custom_columns:5160
4d5fae46-8e6a-4e08-abee-817e9fb894a2:/local/bast/DBIx-Class/0.08/branches/sqla_1.50_compat:5414
4d5fae46-8e6a-4e08-abee-817e9fb894a2:/local/bast/DBIx-Class/0.08/trunk:5969
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
ab17426e-7cd3-4704-a2a2-80b7c0a611bb:/local/dbic_column_attr:10946
ab17426e-7cd3-4704-a2a2-80b7c0a611bb:/local/dbic_trunk:11142
bd5ac9a7-f185-4d95-9186-dbb8b392a572:/local/os/bast/DBIx-Class/0.08/trunk:2798
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/belongs_to_null_col_fix:5244
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/cdbicompat_integration:4160
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/column_attr:5074
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/complex_join_rels:4589
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/file_column:3920
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/multi_stuff:5565
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/parser_fk_index:4485
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/prefetch:5699
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/replication_dedux:4600
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/rt_bug_41083:5437
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/savepoints:4223
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/sqla_1.50_compat:5321
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/storage-ms-access:4142
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/subquery:5617
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/sybase:5651
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/versioned_enhancements:4125
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/versioning:4578
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/views:5585
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/trunk:5925
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/subclassed_rsset/Changes
===================================================================
--- DBIx-Class/0.08/branches/subclassed_rsset/Changes	2009-04-21 10:53:25 UTC (rev 5928)
+++ DBIx-Class/0.08/branches/subclassed_rsset/Changes	2009-04-21 10:57:35 UTC (rev 5929)
@@ -1,9 +1,19 @@
 Revision history for DBIx::Class
 
-0.08099_07 2009-02-27 02:00:00 (UTC)
-        - putting IC::DateTime locale, timezone or floating_tz_ok attributes into
+0.081000 2009-04-19 11:39:35 (UTC)
+        - Todo out the register_extra_source test until after shipping
+
+0.08099_08 2009-03-30 00:00:00 (UTC)
+        - Fixed taint mode with load_namespaces
+        - Putting IC::DateTime locale, timezone or floating_tz_ok attributes into
           extra => {} has been deprecated. The new way is to put these things
           directly into the columns definition
+        - Switched MI code to MRO::Compat
+        - Document db-side default_value caveats
+        - Search_like() now warns to indicate deprecation in 0.09. (robkinyon)
+        - TxnScopeGuard left experimental state
+
+0.08099_07 2009-02-27 02:00:00 (UTC)
         - multi-create using find_or_create rather than _related for post-insert
         - fix get_inflated_columns to check has_column_loaded
         - Add DBIC_MULTICREATE_DEBUG env var (undocumented, quasi-internal)
@@ -16,18 +26,13 @@
         - Split sql statements for deploy only if SQLT::Producer returned a scalar
           containing all statements to be executed
         - Add as_query() for ResultSet and ResultSetColumn. This makes subqueries
-          possible. See the Cookbook for details. (robkinyon, michaelr)
+          possible. See the Cookbook for details.
         - Massive rewrite of Ordered to properly handle position constraints and
           to make it more matpath-friendly
         - deploy_statements called ddl_filename with the $version and $dir arguments
-          in the wrong order. 
+          in the wrong order.
         - columns/+columns attributes now support { as => select } hahsrefs
         - support for views both in DBIC and via deploy() in SQLT
-        - test for not dying if a column isn't loaded after insert and a rel using
-          it is called. (eg ->new({ name => 'foo'})->bar if bar uses bar_id)
-          - Currently skipped. Changed exception to have a more detailed message
-          - Document the known issue and a possible work around.
-        - search_like() now warns to indicate deprecation in 0.09. (robkinyon)
 
 0.08099_06 2009-01-23 07:30:00 (UTC)
         - Allow a scalarref to be supplied to the 'from' resultset attribute

Modified: DBIx-Class/0.08/branches/subclassed_rsset/MANIFEST.SKIP
===================================================================
--- DBIx-Class/0.08/branches/subclassed_rsset/MANIFEST.SKIP	2009-04-21 10:53:25 UTC (rev 5928)
+++ DBIx-Class/0.08/branches/subclassed_rsset/MANIFEST.SKIP	2009-04-21 10:57:35 UTC (rev 5929)
@@ -1,3 +1,6 @@
+^(?!script/|examples/|lib/|inc/|t/|Makefile.PL$|README$|MANIFEST$|Changes$|META.yml$)
+
+
 # Avoid version control files.
 \bRCS\b
 \bCVS\b

Modified: DBIx-Class/0.08/branches/subclassed_rsset/Makefile.PL
===================================================================
--- DBIx-Class/0.08/branches/subclassed_rsset/Makefile.PL	2009-04-21 10:53:25 UTC (rev 5928)
+++ DBIx-Class/0.08/branches/subclassed_rsset/Makefile.PL	2009-04-21 10:57:35 UTC (rev 5929)
@@ -9,12 +9,12 @@
 perl_version '5.006001';
 all_from 'lib/DBIx/Class.pm';
 
+requires 'DBD::SQLite'              => 1.23;
 requires 'Data::Page'               => 2.00;
 requires 'Scalar::Util'             => 0;
 requires 'SQL::Abstract'            => 1.51;
 requires 'SQL::Abstract::Limit'     => 0.13;
-requires 'MRO::Compat'              => 0;
-requires 'Class::C3::Componentised' => 1.0004;
+requires 'Class::C3::Componentised' => 1.0005;
 requires 'Storable'                 => 0;
 requires 'Carp::Clan'               => 0;
 requires 'DBI'                      => 1.40;
@@ -32,7 +32,7 @@
 requires 'Encode'                   => 0 if ($] <= 5.008000);  
 
 # configure_requires so the sanity check below can run
-configure_requires 'DBD::SQLite'    => 1.14;
+configure_requires 'DBD::SQLite';
 
 test_requires 'Test::Builder'       => 0.33;
 test_requires 'Test::Warn'          => 0.11;
@@ -64,6 +64,12 @@
   # t/60core.t
   'DateTime::Format::MySQL'   => 0,
 
+  # t/72pg.t
+  $ENV{DBICTEST_PG_DSN}
+    ? ('Sys::SigAction'=> 0)
+    : ()
+  ,
+
   # t/93storage_replication.t
   'Moose',                    => 0,
   'MooseX::AttributeHelpers'  => 0.12,
@@ -75,7 +81,7 @@
 if ($Module::Install::AUTHOR) {
 
   foreach my $module (keys %force_requires_if_author) {
-    requires ($module => $force_requires_if_author{$module});
+    build_requires ($module => $force_requires_if_author{$module});
   }
 
   system('pod2text lib/DBIx/Class.pm > README');
@@ -195,7 +201,7 @@
 
 
 if ($Module::Install::AUTHOR) {
-  # Need to do this _after_ WriteAll else it looses track of them
+  # Need to do this _after_ WriteAll else it loses track of them
   Meta->{values}{build_requires} = [ grep {
     my $ok = 1;
     foreach my $module (keys %force_requires_if_author) {

Modified: DBIx-Class/0.08/branches/subclassed_rsset/lib/DBIx/Class/Componentised.pm
===================================================================
--- DBIx-Class/0.08/branches/subclassed_rsset/lib/DBIx/Class/Componentised.pm	2009-04-21 10:53:25 UTC (rev 5928)
+++ DBIx-Class/0.08/branches/subclassed_rsset/lib/DBIx/Class/Componentised.pm	2009-04-21 10:57:35 UTC (rev 5929)
@@ -31,25 +31,4 @@
   $class->next::method($target, @to_inject);
 }
 
-# Returns a true value if the specified class is installed and loaded
-# successfully, throws an exception if the class is found but not loaded
-# successfully, and false if the class is not installed
-sub load_optional_class {
-  my ($class, $f_class) = @_;
-  eval { $class->ensure_class_loaded($f_class) };
-  my $err = $@;   # so we don't lose it
-  if (! $err) {
-    return 1;
-  }
-  else {
-    my $fn = (join ('/', split ('::', $f_class) ) ) . '.pm';
-    if ($err =~ /Can't locate ${fn} in \@INC/ ) {
-      return 0;
-    }
-    else {
-      die $err;
-    }
-  }
-}
-
 1;

Modified: DBIx-Class/0.08/branches/subclassed_rsset/lib/DBIx/Class/DB.pm
===================================================================
--- DBIx-Class/0.08/branches/subclassed_rsset/lib/DBIx/Class/DB.pm	2009-04-21 10:53:25 UTC (rev 5928)
+++ DBIx-Class/0.08/branches/subclassed_rsset/lib/DBIx/Class/DB.pm	2009-04-21 10:57:35 UTC (rev 5929)
@@ -162,11 +162,12 @@
 sub _maybe_attach_source_to_schema {
   my ($class, $source) = @_;
   if (my $meth = $class->can('schema_instance')) {
-    my $schema = $class->$meth;
-    $schema->register_class($class, $class);
-    my $new_source = $schema->source($class);
-    %$source = %$new_source;
-    $schema->source_registrations->{$class} = $source;
+    if (my $schema = $class->$meth) {
+      $schema->register_class($class, $class);
+      my $new_source = $schema->source($class);
+      %$source = %$new_source;
+      $schema->source_registrations->{$class} = $source;
+    }
   }
 }
 

Modified: DBIx-Class/0.08/branches/subclassed_rsset/lib/DBIx/Class/Manual/Cookbook.pod
===================================================================
--- DBIx-Class/0.08/branches/subclassed_rsset/lib/DBIx/Class/Manual/Cookbook.pod	2009-04-21 10:53:25 UTC (rev 5928)
+++ DBIx-Class/0.08/branches/subclassed_rsset/lib/DBIx/Class/Manual/Cookbook.pod	2009-04-21 10:57:35 UTC (rev 5929)
@@ -1167,6 +1167,18 @@
   while (my @vals = $cursor->next) {
     print $vals[0]."\n";
   }
+
+In case you're going to use this "trick" together with L<DBIx::Class::Schema/deploy> or
+L<DBIx::Class::Schema/create_ddl_dir> a table called "dual" will be created in your
+current schema. This would overlap "sys.dual" and you could not fetch "sysdate" or
+"sequence.nextval" anymore from dual. To avoid this problem, just tell
+L<SQL::Translator> to not create table dual:
+
+    my $sqlt_args = {
+        add_drop_table => 1,
+        parser_args    => { sources => [ grep $_ ne 'Dual', schema->sources ] },
+    };
+    $schema->create_ddl_dir( [qw/Oracle/], undef, './sql', undef, $sqlt_args );
  
 Or use L<DBIx::Class::ResultClass::HashRefInflator>
  

Modified: DBIx-Class/0.08/branches/subclassed_rsset/lib/DBIx/Class/ResultSet.pm
===================================================================
--- DBIx-Class/0.08/branches/subclassed_rsset/lib/DBIx/Class/ResultSet.pm	2009-04-21 10:53:25 UTC (rev 5928)
+++ DBIx-Class/0.08/branches/subclassed_rsset/lib/DBIx/Class/ResultSet.pm	2009-04-21 10:57:35 UTC (rev 5929)
@@ -873,7 +873,11 @@
 
 sub search_like {
   my $class = shift;
-  carp "search_like() is deprecated and will be removed in 0.09. Use search() instead.";
+  carp join ("\n",
+    'search_like() is deprecated and will be removed in 0.09.',
+    'Instead use ->search({ x => { -like => "y%" } })',
+    '(note the outer pair of {}s - they are important!)'
+  );
   my $attrs = (@_ > 1 && ref $_[$#_] eq 'HASH' ? pop(@_) : {});
   my $query = ref $_[0] eq 'HASH' ? { %{shift()} }: {@_};
   $query->{$_} = { 'like' => $query->{$_} } for keys %$query;
@@ -2112,6 +2116,63 @@
   return $self->create($cond);
 }
 
+=head2 update_or_new
+
+=over 4
+
+=item Arguments: \%col_values, { key => $unique_constraint }?
+
+=item Return Value: $rowobject
+
+=back
+
+  $resultset->update_or_new({ col => $val, ... });
+
+First, searches for an existing row matching one of the unique constraints
+(including the primary key) on the source of this resultset. If a row is
+found, updates it with the other given column values. Otherwise, instantiate
+a new result object and return it. The object will not be saved into your storage
+until you call L<DBIx::Class::Row/insert> on it.
+
+Takes an optional C<key> attribute to search on a specific unique constraint.
+For example:
+
+  # In your application
+  my $cd = $schema->resultset('CD')->update_or_new(
+    {
+      artist => 'Massive Attack',
+      title  => 'Mezzanine',
+      year   => 1998,
+    },
+    { key => 'cd_artist_title' }
+  );
+
+  if ($cd->in_storage) {
+      # the cd was updated
+  }
+  else {
+      # the cd is not yet in the database, let's insert it
+      $cd->insert;
+  }
+
+See also L</find>, L</find_or_create> and L<find_or_new>.
+
+=cut
+
+sub update_or_new {
+    my $self  = shift;
+    my $attrs = ( @_ > 1 && ref $_[$#_] eq 'HASH' ? pop(@_) : {} );
+    my $cond  = ref $_[0] eq 'HASH' ? shift : {@_};
+
+    my $row = $self->find( $cond, $attrs );
+    if ( defined $row ) {
+        $row->update($cond);
+        return $row;
+    }
+
+    return $self->new_result($cond);
+}
+
 =head2 get_cache
 
 =over 4

Modified: DBIx-Class/0.08/branches/subclassed_rsset/lib/DBIx/Class/ResultSource.pm
===================================================================
--- DBIx-Class/0.08/branches/subclassed_rsset/lib/DBIx/Class/ResultSource.pm	2009-04-21 10:53:25 UTC (rev 5928)
+++ DBIx-Class/0.08/branches/subclassed_rsset/lib/DBIx/Class/ResultSource.pm	2009-04-21 10:57:35 UTC (rev 5929)
@@ -1089,12 +1089,16 @@
   $seen ||= {};
   $force_left ||= { force => 0 };
   if (ref $join eq 'ARRAY') {
-    return map { $self->resolve_join($_, $alias, $seen) } @$join;
+    return
+      map {
+        local $force_left->{force} = $force_left->{force};
+        $self->resolve_join($_, $alias, $seen, $force_left);
+      } @$join;
   } elsif (ref $join eq 'HASH') {
     return
       map {
         my $as = ($seen->{$_} ? $_.'_'.($seen->{$_}+1) : $_);
-        local $force_left->{force};
+        local $force_left->{force} = $force_left->{force};
         (
           $self->resolve_join($_, $alias, $seen, $force_left),
           $self->related_source($_)->resolve_join(

Modified: DBIx-Class/0.08/branches/subclassed_rsset/lib/DBIx/Class/Schema/Versioned.pm
===================================================================
--- DBIx-Class/0.08/branches/subclassed_rsset/lib/DBIx/Class/Schema/Versioned.pm	2009-04-21 10:53:25 UTC (rev 5928)
+++ DBIx-Class/0.08/branches/subclassed_rsset/lib/DBIx/Class/Schema/Versioned.pm	2009-04-21 10:57:35 UTC (rev 5929)
@@ -613,7 +613,7 @@
 
 =head1 AUTHORS
 
-Jess Robinson <castaway at desert-island.demon.co.uk>
+Jess Robinson <castaway at desert-island.me.uk>
 Luke Saunders <luke at shadowcatsystems.co.uk>
 
 =head1 LICENSE

Modified: DBIx-Class/0.08/branches/subclassed_rsset/lib/DBIx/Class/Schema.pm
===================================================================
--- DBIx-Class/0.08/branches/subclassed_rsset/lib/DBIx/Class/Schema.pm	2009-04-21 10:53:25 UTC (rev 5928)
+++ DBIx-Class/0.08/branches/subclassed_rsset/lib/DBIx/Class/Schema.pm	2009-04-21 10:57:35 UTC (rev 5929)
@@ -617,7 +617,7 @@
   $self->storage->txn_do(@_);
 }
 
-=head2 txn_scope_guard (EXPERIMENTAL)
+=head2 txn_scope_guard
 
 Runs C<txn_scope_guard> on the schema's storage. See 
 L<DBIx::Class::Storage/txn_scope_guard>.

Modified: DBIx-Class/0.08/branches/subclassed_rsset/lib/DBIx/Class/Storage/DBI/SQLite.pm
===================================================================
--- DBIx-Class/0.08/branches/subclassed_rsset/lib/DBIx/Class/Storage/DBI/SQLite.pm	2009-04-21 10:53:25 UTC (rev 5928)
+++ DBIx-Class/0.08/branches/subclassed_rsset/lib/DBIx/Class/Storage/DBI/SQLite.pm	2009-04-21 10:57:35 UTC (rev 5929)
@@ -45,21 +45,6 @@
   return $backupfile;
 }
 
-sub disconnect {
-
-  # As described in this node http://www.perlmonks.org/?node_id=666210
-  # there seems to be no sane way to ->disconnect a SQLite database with
-  # cached statement handles. As per mst we just zap the cache and 
-  # proceed as normal.
-
-  my $self = shift;
-  if ($self->connected) {
-    $self->_dbh->{CachedKids} = {};
-    $self->next::method (@_);
-  }
-}
-
-
 1;
 
 =head1 NAME

Modified: DBIx-Class/0.08/branches/subclassed_rsset/lib/DBIx/Class/Storage/TxnScopeGuard.pm
===================================================================
--- DBIx-Class/0.08/branches/subclassed_rsset/lib/DBIx/Class/Storage/TxnScopeGuard.pm	2009-04-21 10:53:25 UTC (rev 5928)
+++ DBIx-Class/0.08/branches/subclassed_rsset/lib/DBIx/Class/Storage/TxnScopeGuard.pm	2009-04-21 10:57:35 UTC (rev 5929)
@@ -1,5 +1,4 @@
-package # Hide from pause for now - till we get it working
-  DBIx::Class::Storage::TxnScopeGuard;
+package DBIx::Class::Storage::TxnScopeGuard;
 
 use strict;
 use warnings;
@@ -47,7 +46,7 @@
 
 =head1 NAME
 
-DBIx::Class::Storage::TxnScopeGuard - Experimental
+DBIx::Class::Storage::TxnScopeGuard - Scope-based transaction handling
 
 =head1 SYNOPSIS
 
@@ -70,14 +69,15 @@
 
 =head2 new
 
-Creating an instance of this class will start a new transaction. Expects a
+Creating an instance of this class will start a new transaction (by
+implicitly calling L<DBIx::Class::Storage/txn_begin>. Expects a
 L<DBIx::Class::Storage> object as its only argument.
 
 =head2 commit
 
 Commit the transaction, and stop guarding the scope. If this method is not
-called (i.e. an exception is thrown) and this object goes out of scope then
-the transaction is rolled back.
+called and this object goes out of scope (i.e. an exception is thrown) then
+the transaction is rolled back, via L<DBIx::Class::Storage/txn_rollback>
 
 =cut
 

Modified: DBIx-Class/0.08/branches/subclassed_rsset/lib/DBIx/Class/Storage.pm
===================================================================
--- DBIx-Class/0.08/branches/subclassed_rsset/lib/DBIx/Class/Storage.pm	2009-04-21 10:53:25 UTC (rev 5928)
+++ DBIx-Class/0.08/branches/subclassed_rsset/lib/DBIx/Class/Storage.pm	2009-04-21 10:57:35 UTC (rev 5929)
@@ -299,21 +299,25 @@
 
 =for comment
 
-=head2 txn_scope_guard (EXPERIMENTAL)
+=head2 txn_scope_guard
 
-An alternative way of using transactions to C<txn_do>:
+An alternative way of transaction handling based on
+L<DBIx::Class::Storage::TxnScopeGuard>:
 
- my $txn = $storage->txn_scope_guard;
+ my $txn_guard = $storage->txn_scope_guard;
 
  $row->col1("val1");
  $row->update;
 
- $txn->commit;
+ $txn_guard->commit;
 
-If a exception occurs, the transaction will be rolled back. This is still very
-experiemental, and we are not 100% sure it is working right when nested. The
-onus is on you as the user to make sure you dont forget to call
-$C<$txn->commit>.
+If an exception occurs, or the guard object otherwise leaves the scope
+before C<< $txn_guard->commit >> is called, the transaction will be rolled
+back by an explicit L</txn_rollback> call. In essence this is akin to
+using a L</txn_begin>/L</txn_commit> pair, without having to worry
+about calling L</txn_rollback> at the right places. Note that since there
+is no defined code closure, there will be no retries and other magic upon
+database disconnection. If you need such functionality see L</txn_do>.
 
 =cut
 

Modified: DBIx-Class/0.08/branches/subclassed_rsset/lib/DBIx/Class.pm
===================================================================
--- DBIx-Class/0.08/branches/subclassed_rsset/lib/DBIx/Class.pm	2009-04-21 10:53:25 UTC (rev 5928)
+++ DBIx-Class/0.08/branches/subclassed_rsset/lib/DBIx/Class.pm	2009-04-21 10:57:35 UTC (rev 5929)
@@ -24,7 +24,7 @@
 # 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.08099_07';
+$VERSION = '0.08100';
 
 $VERSION = eval $VERSION; # numify for warning-free dev releases
 
@@ -207,6 +207,8 @@
 
 ank: Andres Kievsky
 
+arcanez: Justin Hunter <justin.d.hunter at gmail.com>
+
 ash: Ash Berlin <ash at cpan.org>
 
 bert: Norbert Csongradi <bert at cpan.org>
@@ -241,6 +243,8 @@
 
 groditi: Guillermo Roditi <groditi at cpan.org>
 
+ilmari: Dagfinn Ilmari MannsE<aring>ker <ilmari at ilmari.org>
+
 jesper: Jesper Krogh
 
 jgoulah: John Goulah <jgoulah at cpan.org>
@@ -281,6 +285,8 @@
 
 perigrin: Chris Prather <chris at prather.org>
 
+Peter Collingbourne <peter at pcc.me.uk>
+
 phaylon: Robert Sedlacek <phaylon at dunkelheit.at>
 
 plu: Johannes Plunien <plu at cpan.org>

Modified: DBIx-Class/0.08/branches/subclassed_rsset/t/100extra_source.t
===================================================================
--- DBIx-Class/0.08/branches/subclassed_rsset/t/100extra_source.t	2009-04-21 10:53:25 UTC (rev 5928)
+++ DBIx-Class/0.08/branches/subclassed_rsset/t/100extra_source.t	2009-04-21 10:57:35 UTC (rev 5929)
@@ -12,7 +12,7 @@
     use base qw/DBIx::Class::ResultSource::Table/;
 }
 
-plan tests => 3;
+plan tests => 4;
 
 my $schema = DBICTest->init_schema();
 my $artist_source = $schema->source('Artist');
@@ -36,6 +36,12 @@
 }
 
 {
+  my $source = $schema->source('DBICTest::Artist');
+  $schema->register_source($source->source_name, $source);
+  is($warn, '', "regregistering an existing source under the same name causes no errors");
+}
+
+{
   my $new_source_name = 'Artist->preview(artist_preview)';
   $schema->register_source( $new_source_name => $new_source );
 

Modified: DBIx-Class/0.08/branches/subclassed_rsset/t/19quotes.t
===================================================================
--- DBIx-Class/0.08/branches/subclassed_rsset/t/19quotes.t	2009-04-21 10:53:25 UTC (rev 5928)
+++ DBIx-Class/0.08/branches/subclassed_rsset/t/19quotes.t	2009-04-21 10:57:35 UTC (rev 5929)
@@ -19,7 +19,7 @@
 use_ok('DBIC::DebugObj');
 my $schema = DBICTest->init_schema();
 
-diag('Testing against ' . join(' ', map { $schema->storage->dbh->get_info($_) } qw/17 18/));
+#diag('Testing against ' . join(' ', map { $schema->storage->dbh->get_info($_) } qw/17 18/));
 
 $schema->storage->sql_maker->quote_char('`');
 $schema->storage->sql_maker->name_sep('.');

Modified: DBIx-Class/0.08/branches/subclassed_rsset/t/19quotes_newstyle.t
===================================================================
--- DBIx-Class/0.08/branches/subclassed_rsset/t/19quotes_newstyle.t	2009-04-21 10:53:25 UTC (rev 5928)
+++ DBIx-Class/0.08/branches/subclassed_rsset/t/19quotes_newstyle.t	2009-04-21 10:57:35 UTC (rev 5929)
@@ -19,7 +19,7 @@
 
 my $schema = DBICTest->init_schema();
 
-diag('Testing against ' . join(' ', map { $schema->storage->dbh->get_info($_) } qw/17 18/));
+#diag('Testing against ' . join(' ', map { $schema->storage->dbh->get_info($_) } qw/17 18/));
 
 my $dsn = $schema->storage->_dbi_connect_info->[0];
 $schema->connection(

Modified: DBIx-Class/0.08/branches/subclassed_rsset/t/33storage_reconnect.t
===================================================================
--- DBIx-Class/0.08/branches/subclassed_rsset/t/33storage_reconnect.t	2009-04-21 10:53:25 UTC (rev 5928)
+++ DBIx-Class/0.08/branches/subclassed_rsset/t/33storage_reconnect.t	2009-04-21 10:57:35 UTC (rev 5929)
@@ -7,18 +7,8 @@
 use lib qw(t/lib);
 use DBICTest;
 
-# equivalent of $Module::Install::AUTHOR
-my $author = (
-  ( not  -d './inc' )
-    or
-  ( -e ($^O eq 'VMS' ? './inc/_author' : './inc/.author') )
-);
+plan tests => 6;
 
-plan $author
-  ? (tests => 6)
-  : (skip_all => 'Test temporarily disabled due to a widespread buggy SQLite version')
-;
-
 my $db_orig = "$FindBin::Bin/var/DBIxClass.db";
 my $db_tmp  = "$db_orig.tmp";
 
@@ -31,12 +21,11 @@
 
 # Disconnect the dbh, and be sneaky about it
 # Also test if DBD::SQLite finaly knows how to ->disconnect properly
-TODO: {
-    local $TODO = 'SQLite is evil/braindead. Once this test starts passing, remove the related atrocity from DBIx::Class::Storage::DBI::SQLite';
-    my $w;
-    local $SIG{__WARN__} = sub { $w = shift };
-    $schema->storage->_dbh->disconnect;
-    ok ($w !~ /active statement handles/, 'SQLite can disconnect properly \o/');
+{
+  my $w;
+  local $SIG{__WARN__} = sub { $w = shift };
+  $schema->storage->_dbh->disconnect;
+  ok ($w !~ /active statement handles/, 'SQLite can disconnect properly');
 }
 
 # Try the operation again - What should happen here is:

Modified: DBIx-Class/0.08/branches/subclassed_rsset/t/39load_namespaces_rt41083.t
===================================================================
--- DBIx-Class/0.08/branches/subclassed_rsset/t/39load_namespaces_rt41083.t	2009-04-21 10:53:25 UTC (rev 5928)
+++ DBIx-Class/0.08/branches/subclassed_rsset/t/39load_namespaces_rt41083.t	2009-04-21 10:57:35 UTC (rev 5929)
@@ -2,12 +2,10 @@
 
 use strict;
 use warnings;
-use Test::More;
 
 use lib 't/lib';
+use Test::More tests => 8;
 
-plan tests => 8;
-
 sub _chk_warning {
   defined $_[0]?
     $_[0] !~ qr/We found ResultSet class '([^']+)' for '([^']+)', but it seems that you had already set '([^']+)' to use '([^']+)' instead/ :

Modified: DBIx-Class/0.08/branches/subclassed_rsset/t/66relationship.t
===================================================================
--- DBIx-Class/0.08/branches/subclassed_rsset/t/66relationship.t	2009-04-21 10:53:25 UTC (rev 5928)
+++ DBIx-Class/0.08/branches/subclassed_rsset/t/66relationship.t	2009-04-21 10:57:35 UTC (rev 5929)
@@ -8,7 +8,7 @@
 
 my $schema = DBICTest->init_schema();
 
-plan tests => 71;
+plan tests => 74;
 
 # has_a test
 my $cd = $schema->resultset("CD")->find(4);
@@ -41,7 +41,7 @@
   } );
 
  SKIP:{
-    skip "Can't fix right now", 1 unless $DBIx::Class::VERSION >= '0.09';
+    skip "Can't fix right now", 1 if $DBIx::Class::VERSION < 0.09;
     lives_ok { $big_flop->genre} "Don't throw exception when col is not loaded after insert";
   };
 }
@@ -289,3 +289,13 @@
 my $rs_overridden = $schema->source('ForceForeign');
 my $relinfo_with_attr = $rs_overridden->relationship_info ('cd_3');
 cmp_ok($relinfo_with_attr->{attrs}{is_foreign_key_constraint}, '==', 0, "is_foreign_key_constraint defined for belongs_to relationships with attr.");
+
+# check that relationships below left join relationships are forced to left joins
+my $cds = $schema->resultset("CD")->search({ cdid => 1 }, { join => { genre => 'demographic' } });
+is($cds->count, 1, "subjoins under left joins force_left (string)");
+
+$cds = $schema->resultset("CD")->search({ cdid => 1 }, { join => { genre => [ 'demographic' ] } });
+is($cds->count, 1, "subjoins under left joins force_left (arrayref)");
+
+$cds = $schema->resultset("CD")->search({ cdid => 1 }, { join => { genre => { demographic => {} } } });
+is($cds->count, 1, "subjoins under left joins force_left (hashref)");

Modified: DBIx-Class/0.08/branches/subclassed_rsset/t/71mysql.t
===================================================================
--- DBIx-Class/0.08/branches/subclassed_rsset/t/71mysql.t	2009-04-21 10:53:25 UTC (rev 5928)
+++ DBIx-Class/0.08/branches/subclassed_rsset/t/71mysql.t	2009-04-21 10:57:35 UTC (rev 5929)
@@ -108,7 +108,7 @@
     => 'Created an artist resultset of undef';
     
     TODO: {
-    	$TODO = "need to fix the row count =1 when select * from table where pk IS NULL problem";
+    	local $TODO = "need to fix the row count =1 when select * from table where pk IS NULL problem";
 	    is $artist2_rs->count, 0
 	    => 'got no rows';    	
     }

Modified: DBIx-Class/0.08/branches/subclassed_rsset/t/80unique.t
===================================================================
--- DBIx-Class/0.08/branches/subclassed_rsset/t/80unique.t	2009-04-21 10:53:25 UTC (rev 5928)
+++ DBIx-Class/0.08/branches/subclassed_rsset/t/80unique.t	2009-04-21 10:57:35 UTC (rev 5929)
@@ -7,7 +7,7 @@
 
 my $schema = DBICTest->init_schema();
 
-plan tests => 45;
+plan tests => 49;
 
 # Check the defined unique constraints
 is_deeply(
@@ -183,3 +183,30 @@
   ok($cd->in_storage, 'find correctly grepped the key across a relationship');
   is($cd->cdid, 1, 'cdid is correct');
 }
+
+# Test update_or_new
+{
+    my $cd1 = $schema->resultset('CD')->update_or_new(
+      {
+        artist => $artistid,
+        title  => "SuperHits $$",
+        year   => 2007,
+      },
+      { key => 'cd_artist_title' }
+    );
+
+    ok(!$cd1->in_storage, 'CD is not in storage yet after update_or_new');
+    $cd1->insert;
+    ok($cd1->in_storage, 'CD got added to strage after update_or_new && insert');
+
+    my $cd2 = $schema->resultset('CD')->update_or_new(
+      {
+        artist => $artistid,
+        title  => "SuperHits $$",
+        year   => 2008,
+      },
+      { key => 'cd_artist_title' }
+    );
+    ok($cd2->in_storage, 'Updating year using update_or_new was successful');
+    is($cd2->id, $cd1->id, 'Got the same CD using update_or_new');
+}
\ No newline at end of file

Modified: DBIx-Class/0.08/branches/subclassed_rsset/t/89inflate_datetime.t
===================================================================
--- DBIx-Class/0.08/branches/subclassed_rsset/t/89inflate_datetime.t	2009-04-21 10:53:25 UTC (rev 5928)
+++ DBIx-Class/0.08/branches/subclassed_rsset/t/89inflate_datetime.t	2009-04-21 10:57:35 UTC (rev 5929)
@@ -5,7 +5,10 @@
 use lib qw(t/lib);
 use DBICTest;
 
-DBICTest::Schema->load_classes('EventTZDeprecated');
+{
+  local $SIG{__WARN__} = sub { warn @_ if $_[0] !~ /extra \=\> .+? has been deprecated/ };
+  DBICTest::Schema->load_classes('EventTZDeprecated');
+}
 
 my $schema = DBICTest->init_schema();
 

Modified: DBIx-Class/0.08/branches/subclassed_rsset/t/90ensure_class_loaded.t
===================================================================
--- DBIx-Class/0.08/branches/subclassed_rsset/t/90ensure_class_loaded.t	2009-04-21 10:53:25 UTC (rev 5928)
+++ DBIx-Class/0.08/branches/subclassed_rsset/t/90ensure_class_loaded.t	2009-04-21 10:57:35 UTC (rev 5929)
@@ -64,9 +64,12 @@
     q/0;/,
   );
 
-  $retval = eval { $schema->load_optional_class('VIRTUAL::PAR::PACKAGE') };
-  ok( $@, 'load_optional_class of a no-true-returning PAR module did throw' );
-  ok( !$retval, 'no-true-returning PAR package not loaded' );
+  TODO: {
+    local $TODO = "Current load_optional_class cannot find PAR";
+    $retval = eval { $schema->load_optional_class('VIRTUAL::PAR::PACKAGE') };
+    ok( $@, 'load_optional_class of a no-true-returning PAR module did throw' );
+    ok( !$retval, 'no-true-returning PAR package not loaded' );
+  }
 
   # simulate a normal class (no one adjusted %INC so it will be tried again
   @code = (
@@ -74,9 +77,12 @@
     q/1;/,
   );
 
-  $retval = eval { $schema->load_optional_class('VIRTUAL::PAR::PACKAGE') };
-  ok( !$@, 'load_optional_class of a PAR module did not throw' );
-  ok( $retval, 'PAR package "loaded"' );
+  TODO: {
+    local $TODO = "Current load_optional_class cannot find PARs";
+    $retval = eval { $schema->load_optional_class('VIRTUAL::PAR::PACKAGE') };
+    ok( !$@, 'load_optional_class of a PAR module did not throw' );
+    ok( $retval, 'PAR package "loaded"' );
+  }
 
   # see if we can still load stuff with the coderef present
   $retval = eval { $schema->load_optional_class('DBIx::Class::ResultClass::HashRefInflator') };

Modified: DBIx-Class/0.08/branches/subclassed_rsset/t/93single_accessor_object.t
===================================================================
--- DBIx-Class/0.08/branches/subclassed_rsset/t/93single_accessor_object.t	2009-04-21 10:53:25 UTC (rev 5928)
+++ DBIx-Class/0.08/branches/subclassed_rsset/t/93single_accessor_object.t	2009-04-21 10:57:35 UTC (rev 5929)
@@ -56,7 +56,7 @@
 
 {
 	my $artist = $schema->resultset('Artist')->create({ artistid => 666, name => 'bad religion' });
-	my $genre = $schema->resultset('Genre')->create({ genreid => 88, name => 'disco' });
+	my $genre = $schema->resultset('Genre')->create({ genreid => 88, name => 'disco', demographicid => 1 });
 	my $cd = $schema->resultset('CD')->create({ cdid => 187, artist => 1, title => 'how could hell be any worse?', year => 1982 });
 
 	dies_ok { $cd->genre } 'genre accessor throws without column';

Modified: DBIx-Class/0.08/branches/subclassed_rsset/t/96multi_create_torture.t
===================================================================
--- DBIx-Class/0.08/branches/subclassed_rsset/t/96multi_create_torture.t	2009-04-21 10:53:25 UTC (rev 5928)
+++ DBIx-Class/0.08/branches/subclassed_rsset/t/96multi_create_torture.t	2009-04-21 10:57:35 UTC (rev 5929)
@@ -27,6 +27,9 @@
     year => '2012',
     genre => {
       name => '"Greatest" collections',
+      demographic => {
+        name => '"Greatest" collections demographic',
+      },
     },
     tags => [
       { tag => 'A' },
@@ -47,6 +50,9 @@
                       year => 2012,
                       genre => {
                         name => '"Greatest" collections',
+                        demographic => {
+                          name => '"Greatest" collections demographic',
+                        },
                       },
                       tags => [
                         { tag => 'A' },
@@ -68,6 +74,9 @@
                                     year => 2012,
                                     genre => {
                                       name => '"Greatest" collections',
+                                      demographic => {
+                                        name => '"Greatest" collections demographic',
+                                      },
                                     },
                                     tags => [
                                       { tag => 'A' },
@@ -79,6 +88,9 @@
                                     year => 2012,
                                     genre => {
                                       name => '"Greatest" collections2',
+                                      demographic => {
+                                        name => '"Greatest" collections demographic',
+                                      },
                                     },
                                     tags => [
                                       { tag => 'A' },
@@ -91,6 +103,9 @@
                               year => 2013,
                               genre => {
                                 name => '"Greatest" collections2',
+                                demographic => {
+                                  name => '"Greatest" collections demographic',
+                                },
                               },
                             }},
                           ],
@@ -103,6 +118,9 @@
                 year => 2012,
                 genre => {
                   name => '"Greatest" collections',
+                  demographic => {
+                    name => '"Greatest" collections demographic',
+                  },
                 },
                 tags => [
                   { tag => 'A' },

Modified: DBIx-Class/0.08/branches/subclassed_rsset/t/cdbi/02-Film.t
===================================================================
--- DBIx-Class/0.08/branches/subclassed_rsset/t/cdbi/02-Film.t	2009-04-21 10:53:25 UTC (rev 5928)
+++ DBIx-Class/0.08/branches/subclassed_rsset/t/cdbi/02-Film.t	2009-04-21 10:57:35 UTC (rev 5929)
@@ -151,7 +151,7 @@
 
 # Multi-column search
 {
-	my @films = $blrunner->search_like(title => "Bladerunner%", rating => '15');
+	my @films = $blrunner->search (title => { -like => "Bladerunner%"}, rating => '15');
 	is @films, 1, "Only one Bladerunner is a 15";
 }
 
@@ -208,7 +208,7 @@
 is($films[0]->id, $gone->id, ' ... the correct one');
 
 # Find all films which were directed by Bob
- at films = Film->search_like('Director', 'Bob %');
+ at films = Film->search ( { 'Director' => { -like => 'Bob %' } });
 is(scalar @films, 3, ' search_like returns 3 films');
 ok(
 	eq_array(

Modified: DBIx-Class/0.08/branches/subclassed_rsset/t/cdbi/15-accessor.t
===================================================================
--- DBIx-Class/0.08/branches/subclassed_rsset/t/cdbi/15-accessor.t	2009-04-21 10:53:25 UTC (rev 5928)
+++ DBIx-Class/0.08/branches/subclassed_rsset/t/cdbi/15-accessor.t	2009-04-21 10:57:35 UTC (rev 5929)
@@ -25,6 +25,11 @@
     sub Class::DBI::sheep { ok 0; }
 }
 
+# Install the deprecation warning intercept here for the rest of the 08 dev cycle
+local $SIG{__WARN__} = sub {
+  warn @_ unless (DBIx::Class->VERSION < 0.09 and $_[0] =~ /Query returned more than one row/);
+};
+
 sub Film::mutator_name {
     my ($class, $col) = @_;
     return "set_sheep" if lc $col eq "numexplodingsheep";
@@ -160,9 +165,6 @@
     like $@, qr/film/, "no hasa film";
 
     eval {
-        local $SIG{__WARN__} = sub {
-            warn @_ unless $_[0] =~ /Query returned more than one row/;
-        };
         ok my $f = $ac->movie, "hasa movie";
         isa_ok $f, "Film";
         is $f->id, $bt->id, " - Bad Taste";
@@ -264,5 +266,5 @@
     my $abigail = eval { Film->create({ title => "Abigail's Party" }) };
     like $@, qr/read only/, "Or create new films";
 
-    $sandl->discard_changes;
+    $_->discard_changes for ($naked, $sandl);
 }

Modified: DBIx-Class/0.08/branches/subclassed_rsset/t/cdbi/22-deflate_order.t
===================================================================
--- DBIx-Class/0.08/branches/subclassed_rsset/t/cdbi/22-deflate_order.t	2009-04-21 10:53:25 UTC (rev 5928)
+++ DBIx-Class/0.08/branches/subclassed_rsset/t/cdbi/22-deflate_order.t	2009-04-21 10:57:35 UTC (rev 5929)
@@ -12,6 +12,7 @@
 eval { require Time::Piece::MySQL };
 plan skip_all => "Need Time::Piece::MySQL for this test" if $@;
 
+use lib 't/cdbi/testlib';
 eval { require 't/cdbi/testlib/Log.pm' };
 plan skip_all => "Need MySQL for this test" if $@;
 

Modified: DBIx-Class/0.08/branches/subclassed_rsset/t/cdbi/testlib/MyBase.pm
===================================================================
--- DBIx-Class/0.08/branches/subclassed_rsset/t/cdbi/testlib/MyBase.pm	2009-04-21 10:53:25 UTC (rev 5928)
+++ DBIx-Class/0.08/branches/subclassed_rsset/t/cdbi/testlib/MyBase.pm	2009-04-21 10:57:35 UTC (rev 5929)
@@ -8,9 +8,7 @@
 
 use vars qw/$dbh/;
 
-# temporary, might get switched to the new test framework someday
-my @connect = ("dbi:mysql:test", "", "", { PrintError => 0});
-
+my @connect = (@ENV{map { "DBICTEST_MYSQL_${_}" } qw/DSN USER PASS/}, { PrintError => 0});
 $dbh = DBI->connect(@connect) or die DBI->errstr;
 my @table;
 

Added: DBIx-Class/0.08/branches/subclassed_rsset/t/lib/DBICTest/Schema/Demographic.pm
===================================================================
--- DBIx-Class/0.08/branches/subclassed_rsset/t/lib/DBICTest/Schema/Demographic.pm	                        (rev 0)
+++ DBIx-Class/0.08/branches/subclassed_rsset/t/lib/DBICTest/Schema/Demographic.pm	2009-04-21 10:57:35 UTC (rev 5929)
@@ -0,0 +1,21 @@
+package DBICTest::Schema::Demographic;
+
+use strict;
+
+use base 'DBIx::Class::Core';
+
+__PACKAGE__->table('demographic');
+__PACKAGE__->add_columns(
+    demographicid => {
+      data_type => 'integer',
+      is_auto_increment => 1,
+    },
+    name => {
+      data_type => 'varchar',
+      size => 100,
+    },
+);
+__PACKAGE__->set_primary_key('demographicid');
+__PACKAGE__->add_unique_constraint ( demographic_name => [qw/name/] );
+
+1;

Modified: DBIx-Class/0.08/branches/subclassed_rsset/t/lib/DBICTest/Schema/Genre.pm
===================================================================
--- DBIx-Class/0.08/branches/subclassed_rsset/t/lib/DBICTest/Schema/Genre.pm	2009-04-21 10:53:25 UTC (rev 5928)
+++ DBIx-Class/0.08/branches/subclassed_rsset/t/lib/DBICTest/Schema/Genre.pm	2009-04-21 10:57:35 UTC (rev 5929)
@@ -14,10 +14,15 @@
       data_type => 'varchar',
       size => 100,
     },
+    demographicid => {
+      data_type => 'integer',
+      is_nullable => 0,
+    },
 );
 __PACKAGE__->set_primary_key('genreid');
 __PACKAGE__->add_unique_constraint ( genre_name => [qw/name/] );
 
 __PACKAGE__->has_many (cds => 'DBICTest::Schema::CD', 'genreid');
+__PACKAGE__->belongs_to (demographic => 'DBICTest::Schema::Demographic', 'demographicid');
 
 1;

Modified: DBIx-Class/0.08/branches/subclassed_rsset/t/lib/DBICTest/Schema.pm
===================================================================
--- DBIx-Class/0.08/branches/subclassed_rsset/t/lib/DBICTest/Schema.pm	2009-04-21 10:53:25 UTC (rev 5928)
+++ DBIx-Class/0.08/branches/subclassed_rsset/t/lib/DBICTest/Schema.pm	2009-04-21 10:57:35 UTC (rev 5929)
@@ -11,6 +11,7 @@
   BindType
   Employee
   CD
+  Demographic
   FileColumn
   Genre
   Link

Modified: DBIx-Class/0.08/branches/subclassed_rsset/t/lib/sqlite.sql
===================================================================
--- DBIx-Class/0.08/branches/subclassed_rsset/t/lib/sqlite.sql	2009-04-21 10:53:25 UTC (rev 5928)
+++ DBIx-Class/0.08/branches/subclassed_rsset/t/lib/sqlite.sql	2009-04-21 10:57:35 UTC (rev 5929)
@@ -1,6 +1,6 @@
 -- 
 -- Created by SQL::Translator::Producer::SQLite
--- Created on Sun Feb 22 00:15:06 2009
+-- Created on Sun Apr 19 11:49:48 2009
 -- 
 
 
@@ -137,6 +137,16 @@
 CREATE INDEX collection_object_idx_object_c ON collection_object (object);
 
 --
+-- Table: demographic
+--
+CREATE TABLE demographic (
+  demographicid INTEGER PRIMARY KEY NOT NULL,
+  name varchar(100) NOT NULL
+);
+
+CREATE UNIQUE INDEX demographic_name_demographic ON demographic (name);
+
+--
 -- Table: employee
 --
 CREATE TABLE employee (
@@ -221,9 +231,12 @@
 --
 CREATE TABLE genre (
   genreid INTEGER PRIMARY KEY NOT NULL,
-  name varchar(100) NOT NULL
+  name varchar(100) NOT NULL,
+  demographicid integer NOT NULL
 );
 
+CREATE INDEX genre_idx_demographicid_genre ON genre (demographicid);
+
 CREATE UNIQUE INDEX genre_name_genre ON genre (name);
 
 --




More information about the Bast-commits mailing list