[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