[Bast-commits] r8789 - in
DBIx-Class/0.08/branches/run_file_against_storage: . lib
lib/DBIx/Class lib/DBIx/Class/Admin lib/DBIx/Class/Optional
lib/DBIx/Class/Relationship lib/DBIx/Class/Storage
lib/DBIx/Class/Storage/DBI lib/DBIx/Class/Storage/DBI/Sybase
lib/SQL/Translator/Parser/DBIx script t t/admin t/bind
t/count t/inflate t/sqlahacks/quotes t/storage
caelum at dev.catalyst.perl.org
caelum at dev.catalyst.perl.org
Sun Feb 21 12:42:10 GMT 2010
Author: caelum
Date: 2010-02-21 12:42:10 +0000 (Sun, 21 Feb 2010)
New Revision: 8789
Added:
DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Admin/Descriptive.pm
DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Admin/Usage.pm
DBIx-Class/0.08/branches/run_file_against_storage/t/count/group_by_func.t
Removed:
DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Storage/DBI/AmbiguousGlob.pm
Modified:
DBIx-Class/0.08/branches/run_file_against_storage/
DBIx-Class/0.08/branches/run_file_against_storage/Changes
DBIx-Class/0.08/branches/run_file_against_storage/Makefile.PL
DBIx-Class/0.08/branches/run_file_against_storage/lib/
DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Optional/Dependencies.pm
DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Ordered.pm
DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/PK.pm
DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Relationship/Accessor.pm
DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Relationship/Base.pm
DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Relationship/BelongsTo.pm
DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Relationship/HasMany.pm
DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Relationship/HasOne.pm
DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/ResultSet.pm
DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/ResultSource.pm
DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/ResultSourceProxy.pm
DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Storage/DBI.pm
DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Storage/DBI/MSSQL.pm
DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Storage/DBI/MultiColumnIn.pm
DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Storage/DBI/Replicated.pm
DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Storage/DBI/SQLAnywhere.pm
DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Storage/DBI/Sybase/ASE.pm
DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Storage/DBI/mysql.pm
DBIx-Class/0.08/branches/run_file_against_storage/lib/SQL/Translator/Parser/DBIx/Class.pm
DBIx-Class/0.08/branches/run_file_against_storage/script/dbicadmin
DBIx-Class/0.08/branches/run_file_against_storage/t/02pod.t
DBIx-Class/0.08/branches/run_file_against_storage/t/03podcoverage.t
DBIx-Class/0.08/branches/run_file_against_storage/t/52cycle.t
DBIx-Class/0.08/branches/run_file_against_storage/t/69update.t
DBIx-Class/0.08/branches/run_file_against_storage/t/75limit.t
DBIx-Class/0.08/branches/run_file_against_storage/t/76joins.t
DBIx-Class/0.08/branches/run_file_against_storage/t/99dbic_sqlt_parser.t
DBIx-Class/0.08/branches/run_file_against_storage/t/admin/02ddl.t
DBIx-Class/0.08/branches/run_file_against_storage/t/admin/03data.t
DBIx-Class/0.08/branches/run_file_against_storage/t/bind/attribute.t
DBIx-Class/0.08/branches/run_file_against_storage/t/count/distinct.t
DBIx-Class/0.08/branches/run_file_against_storage/t/inflate/hri.t
DBIx-Class/0.08/branches/run_file_against_storage/t/sqlahacks/quotes/quotes.t
DBIx-Class/0.08/branches/run_file_against_storage/t/sqlahacks/quotes/quotes_newstyle.t
DBIx-Class/0.08/branches/run_file_against_storage/t/storage/error.t
Log:
r23244 at hlagh (orig r8726): caelum | 2010-02-16 08:51:58 -0500
set behavior for Hash::Merge in ::DBI::Replicated, otherwise it uses the global setting
r23245 at hlagh (orig r8727): caelum | 2010-02-16 09:43:25 -0500
POD touchups
r23346 at hlagh (orig r8746): ribasushi | 2010-02-18 18:30:37 -0500
Fix bogus test
r23347 at hlagh (orig r8747): ribasushi | 2010-02-18 18:34:22 -0500
Retire useless abstraction (all rdbms need this anyway)
r23348 at hlagh (orig r8748): ribasushi | 2010-02-18 18:35:01 -0500
Fix count of group_by over aliased function
r23352 at hlagh (orig r8752): ribasushi | 2010-02-19 04:11:20 -0500
r8497 at Thesaurus (orig r8484): ribasushi | 2010-01-31 10:06:29 +0100
Branch to unify mandatory PK handling
r8498 at Thesaurus (orig r8485): ribasushi | 2010-01-31 10:20:36 +0100
This is not really used for anything (same code in DBI)
r8499 at Thesaurus (orig r8486): ribasushi | 2010-01-31 10:25:55 +0100
Helper primary_columns wrapper to throw if a PK is not defined
r8500 at Thesaurus (orig r8487): ribasushi | 2010-01-31 11:07:25 +0100
Stupid errors
r8501 at Thesaurus (orig r8488): ribasushi | 2010-01-31 12:18:57 +0100
Saner handling of nonexistent/partial conditions
r8762 at Thesaurus (orig r8749): ribasushi | 2010-02-19 10:07:40 +0100
trap unresolvable conditions due to incomplete relationship specification
r8764 at Thesaurus (orig r8751): ribasushi | 2010-02-19 10:11:09 +0100
Changes
r23354 at hlagh (orig r8754): ribasushi | 2010-02-19 05:14:30 -0500
Fix for RT54697
r23356 at hlagh (orig r8756): caelum | 2010-02-19 06:21:53 -0500
bump Test::Pod dep
r23357 at hlagh (orig r8757): caelum | 2010-02-19 06:23:07 -0500
bump Test::Pod dep in Optional::Dependencies too
r23380 at hlagh (orig r8760): ribasushi | 2010-02-19 10:40:18 -0500
Fix stupid sqlt parser regression
r23381 at hlagh (orig r8761): ribasushi | 2010-02-19 10:41:36 -0500
Port remaining tests to the Opt::Dep reposiory
r23382 at hlagh (orig r8762): ribasushi | 2010-02-19 10:42:32 -0500
Some test cleanups
r23387 at hlagh (orig r8767): ribasushi | 2010-02-20 14:57:59 -0500
Test::Deep actually isn't required
r23393 at hlagh (orig r8773): ribasushi | 2010-02-20 16:20:22 -0500
These are core for perl 5.8
r23394 at hlagh (orig r8774): ribasushi | 2010-02-21 04:51:13 -0500
Shuffle tests a bit
r23395 at hlagh (orig r8775): ribasushi | 2010-02-21 06:07:58 -0500
Bogus require
r23396 at hlagh (orig r8776): ribasushi | 2010-02-21 06:08:21 -0500
Bogus unnecessary dep
r23407 at hlagh (orig r8787): ribasushi | 2010-02-21 07:37:53 -0500
r8748 at Thesaurus (orig r8735): goraxe | 2010-02-17 23:17:15 +0100
branch for dbicadmin pod fixes
r8778 at Thesaurus (orig r8765): goraxe | 2010-02-20 20:35:00 +0100
add G:L:D sub classes to generate pod
r8779 at Thesaurus (orig r8766): goraxe | 2010-02-20 20:56:16 +0100
dbicadmin: use subclassed G:L:D to generate some pod
r8782 at Thesaurus (orig r8769): goraxe | 2010-02-20 21:48:29 +0100
adjust Makefile.pl to generate dbicadmin.pod
r8783 at Thesaurus (orig r8770): goraxe | 2010-02-20 21:50:55 +0100
add svn-ignore for dbicadmin.pod
r8784 at Thesaurus (orig r8771): goraxe | 2010-02-20 22:01:41 +0100
change Options to Arguments
r8785 at Thesaurus (orig r8772): goraxe | 2010-02-20 22:10:29 +0100
add DBIx::Class::Admin::{Descriptive,Usage} to podcover ignore list
r8790 at Thesaurus (orig r8777): rabbit | 2010-02-21 12:35:38 +0100
Cleanup the makefile regen a bit
r8792 at Thesaurus (orig r8779): rabbit | 2010-02-21 12:53:01 +0100
Bah humbug
r8793 at Thesaurus (orig r8780): rabbit | 2010-02-21 12:55:18 +0100
And another one
r8797 at Thesaurus (orig r8784): rabbit | 2010-02-21 13:32:03 +0100
The minimal pod seems to confuse the manpage generator, commenting out for now
r8798 at Thesaurus (orig r8785): rabbit | 2010-02-21 13:38:03 +0100
Add license/author to dbicadmin autogen POD
r8799 at Thesaurus (orig r8786): rabbit | 2010-02-21 13:38:58 +0100
Reorder makefile author actions to make output more readable
Property changes on: DBIx-Class/0.08/branches/run_file_against_storage
___________________________________________________________________
Modified: 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/cookbook_fixes:7657
4d5fae46-8e6a-4e08-abee-817e9fb894a2:/local/bast/DBIx-Class/0.08/branches/prefetch_bug-unqualified_column_in_search_related_cond:7959
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/branches/void_populate_resultset_cond:7935
4d5fae46-8e6a-4e08-abee-817e9fb894a2:/local/bast/DBIx-Class/0.08/trunk:7982
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:11788
bd5ac9a7-f185-4d95-9186-dbb8b392a572:/local/os/bast/DBIx-Class/0.08/trunk:2798
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/_abandoned_but_possibly_useful/table_name_ref:7266
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/ado_mssql:7886
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/autocast:7418
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/chaining_fixes:8626
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/connect_info_hash:7435
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/connected_schema_leak:8264
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/cookbook_fixes:7479
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/count_distinct:6218
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/count_rs:6741
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/create_scalarref_rt51559:8027
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/dbicadmin_refactor:8691
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/dephandling:8674
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/diamond_relationships:6310
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/discard_changes_replication_fix:7252
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/file_column:3920
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/fix-update-and-delete-as_query:6162
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/get_inflated_columns_rt46953:7964
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/grouped_has_many_join:7382
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/grouped_prefetch:6885
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/handle_all_storage_methods_in_replicated:8612
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/ic_dt_post_inflate:8517
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/informix:8434
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/is_resultset_paginated:7769
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/joined_count:6323
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/mc_fixes:6645
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/mssql_limit_regression:8278
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/mssql_money_type:7096
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/mssql_rno_pagination:8054
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/mssql_storage_minor_refactor:7210
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/mssql_top_fixes:6971
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/multi_stuff:5565
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/multicreate_fixes:7275
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/multiple_version_upgrade:8429
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/mysql_ansi:7175
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/mystery_join:6589
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/new_replication_transaction_fixup:7058
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/no_duplicate_indexes_for_pk_cols:8373
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/normalize_connect_info:8274
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/null_column_regression:8314
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/on_connect_call:6854
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-tweaks:6222
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/oracle_sequence:4173
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/oracle_shorten_aliases:8234
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/order_by_refactor:6475
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/parser_fk_index:4485
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/pg_unqualified_schema:7842
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/prefetch:5699
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/prefetch-group_by:7917
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/prefetch_bug-unqualified_column_in_search_related_cond:7900
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/prefetch_limit:6724
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/prefetch_pager:8431
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/prefetch_redux:7206
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/reduce_pings:7261
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/replication_dedux:4600
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/rsrc_in_storage:6577
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/search_related_prefetch:6818
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/sqlt_parser_view:8145
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/storage-ms-access:4142
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/storage-tweaks:6262
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/subclassed_rsset:5930
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/subquery:5617
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/syb_connected:6919
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/sybase:7682
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/sybase_asa:8513
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/sybase_bulk_insert:7679
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/sybase_bulkinsert_support:7796
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/sybase_computed_columns:8496
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/sybase_mssql:6125
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/sybase_refactor:7940
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/sybase_support:7797
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/table_name_ref:7132
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/top_limit_altfix:6429
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/type_aware_update:6619
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/unresolvable_prefetch:6949
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/view_rels:7908
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/views:5585
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/void_populate_resultset_cond:7944
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/tags/0.08108_prerelease_please_do_not_pull_into_it:7008
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/tags/pre_0.08109_please_do_not_merge:7336
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/trunk:8722
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/cookbook_fixes:7657
4d5fae46-8e6a-4e08-abee-817e9fb894a2:/local/bast/DBIx-Class/0.08/branches/prefetch_bug-unqualified_column_in_search_related_cond:7959
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/branches/void_populate_resultset_cond:7935
4d5fae46-8e6a-4e08-abee-817e9fb894a2:/local/bast/DBIx-Class/0.08/trunk:7982
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:11788
bd5ac9a7-f185-4d95-9186-dbb8b392a572:/local/os/bast/DBIx-Class/0.08/trunk:2798
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/_abandoned_but_possibly_useful/table_name_ref:7266
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/ado_mssql:7886
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/autocast:7418
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/chaining_fixes:8626
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/connect_info_hash:7435
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/connected_schema_leak:8264
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/cookbook_fixes:7479
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/count_distinct:6218
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/count_rs:6741
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/create_scalarref_rt51559:8027
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/dbicadmin_pod:8786
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/dbicadmin_refactor:8691
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/dephandling:8674
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/diamond_relationships:6310
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/discard_changes_replication_fix:7252
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/file_column:3920
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/fix-update-and-delete-as_query:6162
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/get_inflated_columns_rt46953:7964
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/grouped_has_many_join:7382
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/grouped_prefetch:6885
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/handle_all_storage_methods_in_replicated:8612
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/ic_dt_post_inflate:8517
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/informix:8434
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/is_resultset_paginated:7769
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/joined_count:6323
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/mc_fixes:6645
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/mssql_limit_regression:8278
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/mssql_money_type:7096
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/mssql_rno_pagination:8054
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/mssql_storage_minor_refactor:7210
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/mssql_top_fixes:6971
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/multi_stuff:5565
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/multicreate_fixes:7275
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/multiple_version_upgrade:8429
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/mysql_ansi:7175
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/mystery_join:6589
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/new_replication_transaction_fixup:7058
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/no_duplicate_indexes_for_pk_cols:8373
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/normalize_connect_info:8274
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/null_column_regression:8314
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/on_connect_call:6854
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-tweaks:6222
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/oracle_sequence:4173
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/oracle_shorten_aliases:8234
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/order_by_refactor:6475
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/parser_fk_index:4485
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/pg_unqualified_schema:7842
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/prefetch:5699
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/prefetch-group_by:7917
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/prefetch_bug-unqualified_column_in_search_related_cond:7900
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/prefetch_limit:6724
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/prefetch_pager:8431
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/prefetch_redux:7206
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/pri_key_refactor:8751
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/reduce_pings:7261
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/replication_dedux:4600
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/rsrc_in_storage:6577
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/search_related_prefetch:6818
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/sqlt_parser_view:8145
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/storage-ms-access:4142
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/storage-tweaks:6262
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/subclassed_rsset:5930
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/subquery:5617
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/syb_connected:6919
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/sybase:7682
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/sybase_asa:8513
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/sybase_bulk_insert:7679
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/sybase_bulkinsert_support:7796
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/sybase_computed_columns:8496
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/sybase_mssql:6125
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/sybase_refactor:7940
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/sybase_support:7797
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/table_name_ref:7132
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/top_limit_altfix:6429
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/type_aware_update:6619
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/unresolvable_prefetch:6949
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/view_rels:7908
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/views:5585
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/void_populate_resultset_cond:7944
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/tags/0.08108_prerelease_please_do_not_pull_into_it:7008
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/tags/pre_0.08109_please_do_not_merge:7336
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/trunk:8787
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/run_file_against_storage/Changes
===================================================================
--- DBIx-Class/0.08/branches/run_file_against_storage/Changes 2010-02-21 12:38:37 UTC (rev 8788)
+++ DBIx-Class/0.08/branches/run_file_against_storage/Changes 2010-02-21 12:42:10 UTC (rev 8789)
@@ -1,7 +1,13 @@
Revision history for DBIx::Class
- Make sure possibly overwritten deployment_statements methods in
- schemas get called on $schema->deploy.
+ schemas get called on $schema->deploy
+ - Fix count() with group_by aliased-function resultsets
+ - Massive refactor and cleanup of primary key handling
+ - Fixed regression losing custom result_class (really this time)
+ (RT#54697)
+ - Fixed regression in DBIC SQLT::Parser failing with a classname
+ (as opposed to a schema object)
0.08119 2010-02-15 09:36:00 (UTC)
- Add $rs->is_ordered to test for existing order_by on a resultset
Modified: DBIx-Class/0.08/branches/run_file_against_storage/Makefile.PL
===================================================================
--- DBIx-Class/0.08/branches/run_file_against_storage/Makefile.PL 2010-02-21 12:38:37 UTC (rev 8788)
+++ DBIx-Class/0.08/branches/run_file_against_storage/Makefile.PL 2010-02-21 12:42:10 UTC (rev 8789)
@@ -8,6 +8,11 @@
use FindBin;
use lib "$FindBin::Bin/lib";
+# adjust ENV for $AUTHOR system() calls
+use Config;
+$ENV{PERL5LIB} = join ($Config{path_sep}, @INC);
+
+
###
### DO NOT ADD OPTIONAL DEPENDENCIES HERE, EVEN AS recommends()
### All of them should go to DBIx::Class::Optional::Dependencies
@@ -25,19 +30,12 @@
my $test_requires = {
'File::Temp' => '0.22',
'Test::Builder' => '0.33',
- 'Test::Deep' => '0',
'Test::Exception' => '0',
'Test::More' => '0.92',
'Test::Warn' => '0.21',
};
my $runtime_requires = {
- # Core
- 'List::Util' => '0',
- 'Scalar::Util' => '0',
- 'Storable' => '0',
-
- # Dependencies
'Carp::Clan' => '6.0',
'Class::Accessor::Grouped' => '0.09002',
'Class::C3::Componentised' => '1.0005',
@@ -47,7 +45,6 @@
'MRO::Compat' => '0.09',
'Module::Find' => '0.06',
'Path::Class' => '0.18',
- 'Scope::Guard' => '0.03',
'SQL::Abstract' => '1.61',
'SQL::Abstract::Limit' => '0.13',
'Sub::Name' => '0.04',
@@ -62,25 +59,9 @@
test_requires => { %$test_requires },
};
-# re-build README and require extra modules for testing if we're in a checkout
+
+# require extra modules for testing if we're in a checkout
if ($Module::Install::AUTHOR) {
-
- print "Regenerating README\n";
- system('pod2text lib/DBIx/Class.pm > README');
-
- if (-f 'MANIFEST') {
- print "Removing MANIFEST\n";
- unlink 'MANIFEST';
- }
-
- print "Regenerating Optional/Dependencies.pod\n";
- require DBIx::Class::Optional::Dependencies;
- DBIx::Class::Optional::Dependencies->_gen_pod;
-
-# FIXME Disabled due to unsolved issues, ask theorbtwo
-# require Module::Install::Pod::Inherit;
-# PodInherit();
-
warn <<'EOW';
******************************************************************************
******************************************************************************
@@ -92,6 +73,7 @@
EOW
+ require DBIx::Class::Optional::Dependencies;
$reqs->{test_requires} = {
%{$reqs->{test_requires}},
%{DBIx::Class::Optional::Dependencies->_all_optional_requirements},
@@ -119,6 +101,31 @@
$rtype->($mod, $ver);
}
+auto_install();
+
+# re-create various autogenerated documentation bits
+if ($Module::Install::AUTHOR) {
+
+ print "Regenerating README\n";
+ system('pod2text lib/DBIx/Class.pm > README');
+
+ if (-f 'MANIFEST') {
+ print "Removing MANIFEST\n";
+ unlink 'MANIFEST';
+ }
+
+ print "Regenerating dbicadmin.pod\n";
+ system('perl script/dbicadmin --pod > lib/dbicadmin.pod');
+
+ print "Regenerating Optional/Dependencies.pod\n";
+ require DBIx::Class::Optional::Dependencies;
+ DBIx::Class::Optional::Dependencies->_gen_pod;
+
+ # FIXME Disabled due to unsolved issues, ask theorbtwo
+ # require Module::Install::Pod::Inherit;
+ # PodInherit();
+}
+
install_script (qw|
script/dbicadmin
|);
@@ -138,13 +145,10 @@
lib/DBIx/Class/PK/Auto
|);
no_index package => $_ for (qw/
- DBIx::Class::Storage::DBI::AmbiguousGlob
DBIx::Class::SQLAHacks DBIx::Class::Storage::DBIHacks
/);
-auto_install();
-
WriteAll();
Property changes on: DBIx-Class/0.08/branches/run_file_against_storage/lib
___________________________________________________________________
Added: svn:ignore
+ dbicadmin.pod
Added: DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Admin/Descriptive.pm
===================================================================
--- DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Admin/Descriptive.pm (rev 0)
+++ DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Admin/Descriptive.pm 2010-02-21 12:42:10 UTC (rev 8789)
@@ -0,0 +1,10 @@
+package # hide from PAUSE
+ DBIx::Class::Admin::Descriptive;
+
+use DBIx::Class::Admin::Usage;
+
+use base 'Getopt::Long::Descriptive';
+
+sub usage_class { 'DBIx::Class::Admin::Usage'; }
+
+1;
Added: DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Admin/Usage.pm
===================================================================
--- DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Admin/Usage.pm (rev 0)
+++ DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Admin/Usage.pm 2010-02-21 12:42:10 UTC (rev 8789)
@@ -0,0 +1,85 @@
+package # hide from PAUSE
+ DBIx::Class::Admin::Usage;
+
+
+use base 'Getopt::Long::Descriptive::Usage';
+
+use base 'Class::Accessor::Grouped';
+
+use Class::C3;
+
+__PACKAGE__->mk_group_accessors('simple', 'synopsis', 'short_description');
+
+sub prog_name {
+ Getopt::Long::Descriptive::prog_name();
+}
+
+sub set_simple {
+ my ($self,$field, $value) = @_;
+ my $prog_name = prog_name();
+ $value =~ s/%c/$prog_name/g;
+ $self->next::method($field, $value);
+}
+
+
+=head2 pod
+
+This returns the usage formated as a pod document
+
+=cut
+
+
+sub pod {
+ my ($self) = @_;
+ return join qq{\n}, $self->pod_leader_text, $self->pod_option_text, $self->pod_authorlic_text;
+}
+
+sub pod_leader_text {
+ my ($self) = @_;
+
+ return qq{=head1 NAME\n\n}.prog_name()." - ".$self->short_description().qq{\n\n}.
+ qq{=head1 SYNOPSIS\n\n}.$self->leader_text().qq{\n}.$self->synopsis().qq{\n\n};
+
+}
+
+sub pod_authorlic_text {
+
+ return <<'EOA'
+=head1 AUTHORS
+
+See L<DBIx::Class/CONTRIBUTORS>
+
+=head1 LICENSE
+
+You may distribute this code under the same terms as Perl itself
+EOA
+}
+
+
+sub pod_option_text {
+ my ($self) = @_;
+ my @options = @{ $self->{options} || [] };
+ my $string = q{};
+ return $string unless @options;
+
+ $string .= "=head1 OPTIONS\n\n=over\n\n";
+
+ foreach my $opt (@options) {
+ my $spec = $opt->{spec};
+ my $desc = $opt->{desc};
+ if ($desc eq 'spacer') {
+ $string .= "=back\n\n=head2 $spec\n\n=cut\n\n=over\n\n";
+ next;
+ }
+
+ $spec = Getopt::Long::Descriptive->_strip_assignment($spec);
+ $string .= "=item " . join " or ", map { length > 1 ? "B<--$_>" : "B<-$_>" }
+ split /\|/, $spec;
+ $string .= "\n\n$desc\n\n=cut\n\n";
+
+ }
+ $string .= "=back\n\n";
+ return $string;
+}
+
+1;
Modified: DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Optional/Dependencies.pm
===================================================================
--- DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Optional/Dependencies.pm 2010-02-21 12:38:37 UTC (rev 8788)
+++ DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Optional/Dependencies.pm 2010-02-21 12:42:10 UTC (rev 8789)
@@ -74,28 +74,55 @@
},
},
- author => {
+
+ test_pod => {
req => {
- 'Test::Pod' => '1.26',
+ 'Test::Pod' => '1.41',
+ },
+ },
+
+ test_podcoverage => {
+ req => {
'Test::Pod::Coverage' => '1.08',
'Pod::Coverage' => '0.20',
+ },
+ },
+
+ test_notabs => {
+ req => {
#'Test::NoTabs' => '0.9',
+ },
+ },
+
+ test_eol => {
+ req => {
#'Test::EOL' => '0.6',
},
},
- core => {
+ test_cycle => {
req => {
- # t/52cycle.t
'Test::Memory::Cycle' => '0',
'Devel::Cycle' => '1.10',
+ },
+ },
+ test_dtrelated => {
+ req => {
# t/36datetime.t
# t/60core.t
'DateTime::Format::SQLite' => '0',
# t/96_is_deteministic_value.t
'DateTime::Format::Strptime'=> '0',
+
+ # t/inflate/datetime_mysql.t
+ # (doesn't need Mysql itself)
+ 'DateTime::Format::MySQL' => '0',
+
+ # t/inflate/datetime_pg.t
+ # (doesn't need PG itself)
+ 'DateTime::Format::Pg' => '0',
},
},
@@ -116,7 +143,6 @@
? (
'Sys::SigAction' => '0',
'DBD::Pg' => '2.009002',
- 'DateTime::Format::Pg' => '0',
) : ()
},
},
@@ -125,7 +151,6 @@
req => {
$ENV{DBICTEST_MYSQL_DSN}
? (
- 'DateTime::Format::MySQL' => '0',
'DBD::mysql' => '0',
) : ()
},
Modified: DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Ordered.pm
===================================================================
--- DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Ordered.pm 2010-02-21 12:38:37 UTC (rev 8788)
+++ DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Ordered.pm 2010-02-21 12:42:10 UTC (rev 8789)
@@ -797,15 +797,15 @@
if (grep { $_ eq $position_column } ( map { @$_ } (values %{{ $rsrc->unique_constraints }} ) ) ) {
- my @pcols = $rsrc->primary_columns;
+ my @pcols = $rsrc->_pri_cols;
my $cursor = $shift_rs->search ({}, { order_by => { "-$ord", $position_column }, columns => \@pcols } )->cursor;
my $rs = $self->result_source->resultset;
- while (my @pks = $cursor->next ) {
-
+ my @all_pks = $cursor->all;
+ while (my $pks = shift @all_pks) {
my $cond;
for my $i (0.. $#pcols) {
- $cond->{$pcols[$i]} = $pks[$i];
+ $cond->{$pcols[$i]} = $pks->[$i];
}
$rs->search($cond)->update ({ $position_column => \ "$position_column $op 1" } );
Modified: DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/PK.pm
===================================================================
--- DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/PK.pm 2010-02-21 12:38:37 UTC (rev 8788)
+++ DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/PK.pm 2010-02-21 12:42:10 UTC (rev 8789)
@@ -31,13 +31,27 @@
my ($self) = @_;
$self->throw_exception( "Can't call id() as a class method" )
unless ref $self;
- my @pk = $self->_ident_values;
- return (wantarray ? @pk : $pk[0]);
+ my @id_vals = $self->_ident_values;
+ return (wantarray ? @id_vals : $id_vals[0]);
}
sub _ident_values {
my ($self) = @_;
- return (map { $self->{_column_data}{$_} } $self->primary_columns);
+ my (@ids, @missing);
+
+ for ($self->_pri_cols) {
+ push @ids, $self->get_column($_);
+ push @missing, $_ if (! defined $ids[-1] and ! $self->has_column_loaded ($_) );
+ }
+
+ if (@missing && $self->in_storage) {
+ $self->throw_exception (
+ 'Unable to uniquely identify row object with missing PK columns: '
+ . join (', ', @missing )
+ );
+ }
+
+ return @ids;
}
=head2 ID
@@ -64,12 +78,11 @@
$self->throw_exception( "Can't call ID() as a class method" )
unless ref $self;
return undef unless $self->in_storage;
- return $self->_create_ID(map { $_ => $self->{_column_data}{$_} }
- $self->primary_columns);
+ return $self->_create_ID(%{$self->ident_condition});
}
sub _create_ID {
- my ($self,%vals) = @_;
+ my ($self, %vals) = @_;
return undef unless 0 == grep { !defined } values %vals;
return join '|', ref $self || $self, $self->result_source->name,
map { $_ . '=' . $vals{$_} } sort keys %vals;
@@ -87,9 +100,25 @@
sub ident_condition {
my ($self, $alias) = @_;
- my %cond;
+
+ my @pks = $self->_pri_cols;
+ my @vals = $self->_ident_values;
+
+ my (%cond, @undef);
my $prefix = defined $alias ? $alias.'.' : '';
- $cond{$prefix.$_} = $self->get_column($_) for $self->primary_columns;
+ for my $col (@pks) {
+ if (! defined ($cond{$prefix.$col} = shift @vals) ) {
+ push @undef, $col;
+ }
+ }
+
+ if (@undef && $self->in_storage) {
+ $self->throw_exception (
+ 'Unable to construct row object identity condition due to NULL PK columns: '
+ . join (', ', @undef)
+ );
+ }
+
return \%cond;
}
Modified: DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Relationship/Accessor.pm
===================================================================
--- DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Relationship/Accessor.pm 2010-02-21 12:38:37 UTC (rev 8788)
+++ DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Relationship/Accessor.pm 2010-02-21 12:42:10 UTC (rev 8789)
@@ -4,7 +4,6 @@
use strict;
use warnings;
use Sub::Name ();
-use Class::Inspector ();
our %_pod_inherit_config =
(
Modified: DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Relationship/Base.pm
===================================================================
--- DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Relationship/Base.pm 2010-02-21 12:38:37 UTC (rev 8788)
+++ DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Relationship/Base.pm 2010-02-21 12:42:10 UTC (rev 8789)
@@ -200,9 +200,15 @@
my $query = ((@_ > 1) ? {@_} : shift);
my $source = $self->result_source;
- my $cond = $source->_resolve_condition(
- $rel_info->{cond}, $rel, $self
- );
+
+ # condition resolution may fail if an incomplete master-object prefetch
+ # is encountered
+ my $cond =
+ eval { $source->_resolve_condition( $rel_info->{cond}, $rel, $self ) }
+ ||
+ $DBIx::Class::ResultSource::UNRESOLVABLE_CONDITION
+ ;
+
if ($cond eq $DBIx::Class::ResultSource::UNRESOLVABLE_CONDITION) {
my $reverse = $source->reverse_relationship_info($rel);
foreach my $rev_rel (keys %$reverse) {
Modified: DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Relationship/BelongsTo.pm
===================================================================
--- DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Relationship/BelongsTo.pm 2010-02-21 12:38:37 UTC (rev 8788)
+++ DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Relationship/BelongsTo.pm 2010-02-21 12:42:10 UTC (rev 8789)
@@ -24,19 +24,14 @@
# no join condition or just a column name
if (!ref $cond) {
$class->ensure_class_loaded($f_class);
- my %f_primaries = map { $_ => 1 } eval { $f_class->primary_columns };
+ my %f_primaries = map { $_ => 1 } eval { $f_class->_pri_cols };
$class->throw_exception(
- "Can't infer join condition for ${rel} on ${class}; ".
- "unable to load ${f_class}: $@"
+ "Can't infer join condition for ${rel} on ${class}: $@"
) if $@;
my ($pri, $too_many) = keys %f_primaries;
$class->throw_exception(
"Can't infer join condition for ${rel} on ${class}; ".
- "${f_class} has no primary keys"
- ) unless defined $pri;
- $class->throw_exception(
- "Can't infer join condition for ${rel} on ${class}; ".
"${f_class} has multiple primary keys"
) if $too_many;
Modified: DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Relationship/HasMany.pm
===================================================================
--- DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Relationship/HasMany.pm 2010-02-21 12:38:37 UTC (rev 8788)
+++ DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Relationship/HasMany.pm 2010-02-21 12:42:10 UTC (rev 8789)
@@ -14,7 +14,10 @@
unless (ref $cond) {
$class->ensure_class_loaded($f_class);
- my ($pri, $too_many) = $class->primary_columns;
+ my ($pri, $too_many) = eval { $class->_pri_cols };
+ $class->throw_exception(
+ "Can't infer join condition for ${rel} on ${class}: $@"
+ ) if $@;
$class->throw_exception(
"has_many can only infer join for a single primary key; ".
Modified: DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Relationship/HasOne.pm
===================================================================
--- DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Relationship/HasOne.pm 2010-02-21 12:38:37 UTC (rev 8788)
+++ DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Relationship/HasOne.pm 2010-02-21 12:42:10 UTC (rev 8789)
@@ -24,7 +24,7 @@
$class->ensure_class_loaded($f_class);
my $pri = $class->_get_primary_key;
-
+
$class->throw_exception(
"might_have/has_one needs a primary key to infer a join; ".
"${class} has none"
@@ -60,8 +60,12 @@
sub _get_primary_key {
my ( $class, $target_class ) = @_;
$target_class ||= $class;
- my ($pri, $too_many) = $target_class->primary_columns;
+ my ($pri, $too_many) = eval { $target_class->_pri_cols };
$class->throw_exception(
+ "Can't infer join condition on ${target_class}: $@"
+ ) if $@;
+
+ $class->throw_exception(
"might_have/has_one can only infer join for a single primary key; ".
"${class} has more"
) if $too_many;
Modified: DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/ResultSet.pm
===================================================================
--- DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/ResultSet.pm 2010-02-21 12:38:37 UTC (rev 8788)
+++ DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/ResultSet.pm 2010-02-21 12:42:10 UTC (rev 8789)
@@ -535,7 +535,7 @@
}
# Run the query
- my $rs = $self->search ($query, {result_class => $self->result_class, %$attrs});
+ my $rs = $self->search ($query, $attrs);
if (keys %{$rs->_resolved_attrs->{collapse}}) {
my $row = $rs->next;
carp "Query returned more than one row" if $rs->next;
@@ -1136,6 +1136,7 @@
if ($result_class) {
$self->ensure_class_loaded($result_class);
$self->_result_class($result_class);
+ $self->{attrs}{result_class} = $result_class if ref $self;
}
$self->_result_class;
}
@@ -1261,10 +1262,10 @@
# if we multi-prefetch we group_by primary keys only as this is what we would
# get out of the rs via ->next/->all. We *DO WANT* to clobber old group_by regardless
if ( keys %{$attrs->{collapse}} ) {
- $sub_attrs->{group_by} = [ map { "$attrs->{alias}.$_" } ($rsrc->primary_columns) ]
+ $sub_attrs->{group_by} = [ map { "$attrs->{alias}.$_" } ($rsrc->_pri_cols) ]
}
- $sub_attrs->{select} = $rsrc->storage->_subq_count_select ($rsrc, $sub_attrs);
+ $sub_attrs->{select} = $rsrc->storage->_subq_count_select ($rsrc, $attrs);
# this is so that the query can be simplified e.g.
# * ordering can be thrown away in things like Top limit
@@ -1420,7 +1421,7 @@
my $attrs = $self->_resolved_attrs_copy;
delete $attrs->{$_} for qw/collapse select as/;
- $attrs->{columns} = [ map { "$attrs->{alias}.$_" } ($self->result_source->primary_columns) ];
+ $attrs->{columns} = [ map { "$attrs->{alias}.$_" } ($self->result_source->_pri_cols) ];
if ($needs_group_by_subq) {
# make sure no group_by was supplied, or if there is one - make sure it matches
Modified: DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/ResultSource.pm
===================================================================
--- DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/ResultSource.pm 2010-02-21 12:38:37 UTC (rev 8788)
+++ DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/ResultSource.pm 2010-02-21 12:42:10 UTC (rev 8789)
@@ -503,6 +503,16 @@
return @{shift->_primaries||[]};
}
+sub _pri_cols {
+ my $self = shift;
+ my @pcols = $self->primary_columns
+ or $self->throw_exception (sprintf(
+ 'Operation requires a primary key to be declared on %s via set_primary_key',
+ ref $self,
+ ));
+ return @pcols;
+}
+
=head2 add_unique_constraint
=over 4
Modified: DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/ResultSourceProxy.pm
===================================================================
--- DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/ResultSourceProxy.pm 2010-02-21 12:38:37 UTC (rev 8788)
+++ DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/ResultSourceProxy.pm 2010-02-21 12:42:10 UTC (rev 8789)
@@ -75,6 +75,10 @@
shift->result_source_instance->primary_columns(@_);
}
+sub _pri_cols {
+ shift->result_source_instance->_pri_cols(@_);
+}
+
sub add_unique_constraint {
shift->result_source_instance->add_unique_constraint(@_);
}
Deleted: DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Storage/DBI/AmbiguousGlob.pm
===================================================================
--- DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Storage/DBI/AmbiguousGlob.pm 2010-02-21 12:38:37 UTC (rev 8788)
+++ DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Storage/DBI/AmbiguousGlob.pm 2010-02-21 12:42:10 UTC (rev 8789)
@@ -1,47 +0,0 @@
-package DBIx::Class::Storage::DBI::AmbiguousGlob;
-
-use strict;
-use warnings;
-
-use base 'DBIx::Class::Storage::DBI';
-use mro 'c3';
-
-=head1 NAME
-
-DBIx::Class::Storage::DBI::AmbiguousGlob - Storage component for RDBMS choking on count(*)
-
-=head1 DESCRIPTION
-
-Some servers choke on things like:
-
- COUNT(*) FROM (SELECT tab1.col, tab2.col FROM tab1 JOIN tab2 ... )
-
-claiming that col is a duplicate column (it loses the table specifiers by
-the time it gets to the *). Thus for any subquery count we select only the
-primary keys of the main table in the inner query. This hopefully still
-hits the indexes and keeps the server happy.
-
-At this point the only overridden method is C<_subq_count_select()>
-
-=cut
-
-sub _subq_count_select {
- my ($self, $source, $rs_attrs) = @_;
-
- return $rs_attrs->{group_by} if $rs_attrs->{group_by};
-
- my @pcols = map { join '.', $rs_attrs->{alias}, $_ } ($source->primary_columns);
- return @pcols ? \@pcols : [ 1 ];
-}
-
-=head1 AUTHORS
-
-See L<DBIx::Class/CONTRIBUTORS>
-
-=head1 LICENSE
-
-You may distribute this code under the same terms as Perl itself.
-
-=cut
-
-1;
Modified: DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Storage/DBI/MSSQL.pm
===================================================================
--- DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Storage/DBI/MSSQL.pm 2010-02-21 12:38:37 UTC (rev 8788)
+++ DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Storage/DBI/MSSQL.pm 2010-02-21 12:42:10 UTC (rev 8789)
@@ -3,7 +3,7 @@
use strict;
use warnings;
-use base qw/DBIx::Class::Storage::DBI::AmbiguousGlob DBIx::Class::Storage::DBI/;
+use base qw/DBIx::Class::Storage::DBI/;
use mro 'c3';
use List::Util();
Modified: DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Storage/DBI/MultiColumnIn.pm
===================================================================
--- DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Storage/DBI/MultiColumnIn.pm 2010-02-21 12:38:37 UTC (rev 8788)
+++ DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Storage/DBI/MultiColumnIn.pm 2010-02-21 12:42:10 UTC (rev 8789)
@@ -26,7 +26,7 @@
my ($rs, $op, $values) = @_;
my $rsrc = $rs->result_source;
- my @pcols = $rsrc->primary_columns;
+ my @pcols = $rsrc->_pri_cols;
my $attrs = $rs->_resolved_attrs;
# naive check - this is an internal method after all, we should know what we are doing
Modified: DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Storage/DBI/Replicated.pm
===================================================================
--- DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Storage/DBI/Replicated.pm 2010-02-21 12:38:37 UTC (rev 8788)
+++ DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Storage/DBI/Replicated.pm 2010-02-21 12:42:10 UTC (rev 8789)
@@ -384,7 +384,7 @@
my $wantarray = wantarray;
- my $merge = Hash::Merge->new;
+ my $merge = Hash::Merge->new('LEFT_PRECEDENT');
my %opts;
for my $arg (@$info) {
@@ -555,7 +555,7 @@
$self->throw_exception('too many hashrefs in connect_info')
if @hashes > 2;
- my $merge = Hash::Merge->new;
+ my $merge = Hash::Merge->new('LEFT_PRECEDENT');
my %opts = %{ $merge->merge(reverse @hashes) };
# delete them
Modified: DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Storage/DBI/SQLAnywhere.pm
===================================================================
--- DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Storage/DBI/SQLAnywhere.pm 2010-02-21 12:38:37 UTC (rev 8788)
+++ DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Storage/DBI/SQLAnywhere.pm 2010-02-21 12:42:10 UTC (rev 8789)
@@ -25,7 +25,7 @@
/opt/sqlanywhere11/sdk/perl
-Recommended L<DBIx::Class::Storage::DBI/connect_info> settings:
+Recommended L<connect_info|DBIx::Class::Storage::DBI/connect_info> settings:
on_connect_call => 'datetime_setup'
@@ -96,8 +96,8 @@
on_connect_call => 'datetime_setup'
-In L<DBIx::Class::Storage::DBI/connect_info> to set the date and timestamp
-formats (as temporary options for the session) for use with
+In L<connect_info|DBIx::Class::Storage::DBI/connect_info> to set the date and
+timestamp formats (as temporary options for the session) for use with
L<DBIx::Class::InflateColumn::DateTime>.
The C<TIMESTAMP> data type supports up to 6 digits after the decimal point for
@@ -141,8 +141,8 @@
=head1 MAXIMUM CURSORS
-A L<DBIx::Class>> application can use a lot of cursors, due to the usage of
-L<DBI/prepare_cached>.
+A L<DBIx::Class> application can use a lot of cursors, due to the usage of
+L<prepare_cached|DBI/prepare_cached>.
The default cursor maximum is C<50>, which can be a bit too low. This limit can
be turned off (or increased) by the DBA by executing:
Modified: DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Storage/DBI/Sybase/ASE.pm
===================================================================
--- DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Storage/DBI/Sybase/ASE.pm 2010-02-21 12:38:37 UTC (rev 8788)
+++ DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Storage/DBI/Sybase/ASE.pm 2010-02-21 12:42:10 UTC (rev 8789)
@@ -728,11 +728,10 @@
sub _update_blobs {
my ($self, $source, $blob_cols, $where) = @_;
- my (@primary_cols) = $source->primary_columns;
+ my @primary_cols = eval { $source->_pri_cols };
+ $self->throw_exception("Cannot update TEXT/IMAGE column(s): $@")
+ if $@;
- $self->throw_exception('Cannot update TEXT/IMAGE column(s) without a primary key')
- unless @primary_cols;
-
# check if we're updating a single row by PK
my $pk_cols_in_where = 0;
for my $col (@primary_cols) {
@@ -763,11 +762,10 @@
my $table = $source->name;
my %row = %$row;
- my (@primary_cols) = $source->primary_columns;
+ my @primary_cols = eval { $source->_pri_cols} ;
+ $self->throw_exception("Cannot update TEXT/IMAGE column(s): $@")
+ if $@;
- $self->throw_exception('Cannot update TEXT/IMAGE column(s) without a primary key')
- unless @primary_cols;
-
$self->throw_exception('Cannot update TEXT/IMAGE column(s) without primary key values')
if ((grep { defined $row{$_} } @primary_cols) != @primary_cols);
Modified: DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Storage/DBI/mysql.pm
===================================================================
--- DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Storage/DBI/mysql.pm 2010-02-21 12:38:37 UTC (rev 8788)
+++ DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Storage/DBI/mysql.pm 2010-02-21 12:42:10 UTC (rev 8789)
@@ -5,7 +5,6 @@
use base qw/
DBIx::Class::Storage::DBI::MultiColumnIn
- DBIx::Class::Storage::DBI::AmbiguousGlob
DBIx::Class::Storage::DBI
/;
use mro 'c3';
Modified: DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Storage/DBI.pm
===================================================================
--- DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Storage/DBI.pm 2010-02-21 12:38:37 UTC (rev 8788)
+++ DBIx-Class/0.08/branches/run_file_against_storage/lib/DBIx/Class/Storage/DBI.pm 2010-02-21 12:42:10 UTC (rev 8789)
@@ -1602,15 +1602,7 @@
my $rsrc = $rs->result_source;
# quick check if we got a sane rs on our hands
- my @pcols = $rsrc->primary_columns;
- unless (@pcols) {
- $self->throw_exception (
- sprintf (
- "You must declare primary key(s) on source '%s' (via set_primary_key) in order to update or delete complex resultsets",
- $rsrc->source_name || $rsrc->from
- )
- );
- }
+ my @pcols = $rsrc->_pri_cols;
my $sel = $rs->_resolved_attrs->{select};
$sel = [ $sel ] unless ref $sel eq 'ARRAY';
@@ -1663,7 +1655,7 @@
my ($rs, $op, $values) = @_;
my $rsrc = $rs->result_source;
- my @pcols = $rsrc->primary_columns;
+ my @pcols = $rsrc->_pri_cols;
my $guard = $self->txn_scope_guard;
@@ -1897,8 +1889,34 @@
#
sub _subq_count_select {
my ($self, $source, $rs_attrs) = @_;
- return $rs_attrs->{group_by} if $rs_attrs->{group_by};
+ if (my $groupby = $rs_attrs->{group_by}) {
+
+ my $avail_columns = $self->_resolve_column_info ($rs_attrs->{from});
+
+ my $sel_index;
+ for my $sel (@{$rs_attrs->{select}}) {
+ if (ref $sel eq 'HASH' and $sel->{-as}) {
+ $sel_index->{$sel->{-as}} = $sel;
+ }
+ }
+
+ my @selection;
+ for my $g_part (@$groupby) {
+ if (ref $g_part or $avail_columns->{$g_part}) {
+ push @selection, $g_part;
+ }
+ elsif ($sel_index->{$g_part}) {
+ push @selection, $sel_index->{$g_part};
+ }
+ else {
+ $self->throw_exception ("group_by criteria '$g_part' not contained within current resultset source(s)");
+ }
+ }
+
+ return \@selection;
+ }
+
my @pcols = map { join '.', $rs_attrs->{alias}, $_ } ($source->primary_columns);
return @pcols ? \@pcols : [ 1 ];
}
Modified: DBIx-Class/0.08/branches/run_file_against_storage/lib/SQL/Translator/Parser/DBIx/Class.pm
===================================================================
--- DBIx-Class/0.08/branches/run_file_against_storage/lib/SQL/Translator/Parser/DBIx/Class.pm 2010-02-21 12:38:37 UTC (rev 8788)
+++ DBIx-Class/0.08/branches/run_file_against_storage/lib/SQL/Translator/Parser/DBIx/Class.pm 2010-02-21 12:42:10 UTC (rev 8789)
@@ -33,7 +33,7 @@
sub parse {
# this is a hack to prevent schema leaks due to a retarded SQLT implementation
# DO NOT REMOVE (until SQLT2 is out, the all of this will be rewritten anyway)
- Scalar::Util::weaken ($_[1]);
+ Scalar::Util::weaken ($_[1]) if ref ($_[1]);
my ($tr, $data) = @_;
my $args = $tr->parser_args;
Modified: DBIx-Class/0.08/branches/run_file_against_storage/script/dbicadmin
===================================================================
--- DBIx-Class/0.08/branches/run_file_against_storage/script/dbicadmin 2010-02-21 12:38:37 UTC (rev 8788)
+++ DBIx-Class/0.08/branches/run_file_against_storage/script/dbicadmin 2010-02-21 12:42:10 UTC (rev 8789)
@@ -10,26 +10,42 @@
) unless DBIx::Class::Optional::Dependencies->req_ok_for ('admin_script');
}
-use Getopt::Long::Descriptive;
+use DBIx::Class::Admin::Descriptive;
+#use Getopt::Long::Descriptive;
use DBIx::Class::Admin;
+my $short_description = "utility for administrating DBIx::Class schemata";
+my $synopsis_text =qq{
+ deploy a schema to a database
+ %c --schema=MyApp::Schema \
+ --connect='["dbi:SQLite:my.db", "", ""]' \
+ --deploy
+
+ update an existing record
+ %c --schema=MyApp::Schema --class=Employee \
+ --connect='["dbi:SQLite:my.db", "", ""]' \
+ --op=update --set='{ "name": "New_Employee" }'
+}
+;
+
my ($opts, $usage) = describe_options(
- "%c: %o",
+ "%c: %o",
(
['Actions'],
["action" => hidden => { one_of => [
['create|c' => 'Create version diffs needs preversion',],
- ['upgrade|u' => 'Upgrade the database to the current schema '],
- ['install|i' => 'Install the schema to the database',],
+ ['upgrade|U' => 'Upgrade the database to the current schema '],
+ ['install|I' => 'Install the schema version tables to an existing database',],
['deploy|d' => 'Deploy the schema to the database',],
['select|s' => 'Select data from the schema', ],
['insert|i' => 'Insert data into the schema', ],
['update|u' => 'Update data in the schema', ],
['delete|D' => 'Delete data from the schema',],
['op:s' => 'compatiblity option all of the above can be suppied as --op=<action>'],
- ['help|h' => 'display this help'],
+ ['help|h' => 'display this help', { implies => { schema_class => 'main' } } ],
+ ['pod' => 'Output this usage as pod', { implies => { schema_class => 'main' } } ],
], required=> 1 }],
- ['Options'],
+ ['Arguments'],
['schema-class|schema|C:s' => 'The class of the schema to load', { required => 1 } ],
['resultset|resultset_class|class|r:s' => 'The resultset to operate on for data manipulation' ],
['config-stanza|S:s' => 'Where in the config to find the connection_info, supply in form MyApp::Model::DB',],
@@ -41,7 +57,6 @@
['version|v:i' => 'Supply a version install'],
['preversion|p:s' => 'The previous version to diff against',],
['set:s' => 'JSON data used to perform data operations' ],
- ['lib|I:s' => 'Additonal library path to search in'],
['attrs:s' => 'JSON string to be used for the second argument for search'],
['where:s' => 'JSON string to be used for the where clause of search'],
['force' => 'Be forceful with some operations'],
@@ -52,6 +67,17 @@
die "please only use one of --config or --connect-info\n" if ($opts->{config} and $opts->{connect_info});
+if($opts->{pod}) {
+ $usage->synopsis($synopsis_text);
+ $usage->short_description($short_description);
+ print $usage->pod();
+ exit 0;
+}
+
+if($opts->{help}) {
+ $usage->die();
+}
+
# option compatability mangle
if($opts->{connect}) {
$opts->{connect_info} = delete $opts->{connect};
@@ -84,12 +110,29 @@
}
}
-=head1 AUTHOR
-See L<DBIx::Class/CONTRIBUTORS>.
+#__END__
+#
+#=begin pod_begin
+#
+#BEGIN MARKER FOR DYNAMIC POD
+#
+#=end pod_begin
+#
+#=begin pod_end
+#
+#END MARKER FOR DYNAMIC POD
+#
+#=end pod_end
+#
+#=head1 AUTHOR
+#
+#See L<DBIx::Class/CONTRIBUTORS>.
+#
+#=head1 LICENSE
+#
+#You may distribute this code under the same terms as Perl itself
+#
+#=cut
-=head1 LICENSE
-
-You may distribute this code under the same terms as Perl itself
-
-=cut
+# vim: et ft=perl
Modified: DBIx-Class/0.08/branches/run_file_against_storage/t/02pod.t
===================================================================
--- DBIx-Class/0.08/branches/run_file_against_storage/t/02pod.t 2010-02-21 12:38:37 UTC (rev 8788)
+++ DBIx-Class/0.08/branches/run_file_against_storage/t/02pod.t 2010-02-21 12:42:10 UTC (rev 8789)
@@ -5,23 +5,17 @@
use lib qw(t/lib);
use DBICTest;
-my @MODULES = (
- 'Test::Pod 1.26',
-);
-
# Don't run tests for installs
unless ( DBICTest::AuthorCheck->is_author || $ENV{AUTOMATED_TESTING} || $ENV{RELEASE_TESTING} ) {
plan( skip_all => "Author tests not required for installation" );
}
-# Load the testing modules
-foreach my $MODULE ( @MODULES ) {
- eval "use $MODULE";
- if ( $@ ) {
- $ENV{RELEASE_TESTING}
- ? die( "Failed to load required release-testing module $MODULE" )
- : plan( skip_all => "$MODULE not available for testing" );
- }
+require DBIx::Class;
+unless ( DBIx::Class::Optional::Dependencies->req_ok_for ('test_pod') ) {
+ my $missing = DBIx::Class::Optional::Dependencies->req_missing_for ('test_pod');
+ $ENV{RELEASE_TESTING} || DBICTest::AuthorCheck->is_author
+ ? die ("Failed to load release-testing module requirements: $missing")
+ : plan skip_all => "Test needs: $missing"
}
-all_pod_files_ok();
+Test::Pod::all_pod_files_ok();
Modified: DBIx-Class/0.08/branches/run_file_against_storage/t/03podcoverage.t
===================================================================
--- DBIx-Class/0.08/branches/run_file_against_storage/t/03podcoverage.t 2010-02-21 12:38:37 UTC (rev 8788)
+++ DBIx-Class/0.08/branches/run_file_against_storage/t/03podcoverage.t 2010-02-21 12:42:10 UTC (rev 8789)
@@ -6,24 +6,17 @@
use lib qw(t/lib);
use DBICTest;
-my @MODULES = (
- 'Test::Pod::Coverage 1.08',
- 'Pod::Coverage 0.20',
-);
-
# Don't run tests for installs
unless ( DBICTest::AuthorCheck->is_author || $ENV{AUTOMATED_TESTING} || $ENV{RELEASE_TESTING} ) {
plan( skip_all => "Author tests not required for installation" );
}
-# Load the testing modules
-foreach my $MODULE ( @MODULES ) {
- eval "use $MODULE";
- if ( $@ ) {
- $ENV{RELEASE_TESTING}
- ? die( "Failed to load required release-testing module $MODULE" )
- : plan( skip_all => "$MODULE not available for testing" );
- }
+require DBIx::Class;
+unless ( DBIx::Class::Optional::Dependencies->req_ok_for ('test_podcoverage') ) {
+ my $missing = DBIx::Class::Optional::Dependencies->req_missing_for ('test_podcoverage');
+ $ENV{RELEASE_TESTING} || DBICTest::AuthorCheck->is_author
+ ? die ("Failed to load release-testing module requirements: $missing")
+ : plan skip_all => "Test needs: $missing"
}
# Since this is about checking documentation, a little documentation
@@ -93,7 +86,7 @@
/]
},
- 'DBIx::Class::Admin::Types' => { skip => 1 },
+ 'DBIx::Class::Admin::*' => { skip => 1 },
'DBIx::Class::ClassResolver::PassThrough' => { skip => 1 },
'DBIx::Class::Componentised' => { skip => 1 },
'DBIx::Class::Relationship::*' => { skip => 1 },
@@ -148,7 +141,7 @@
if exists($ex->{ignore});
# run the test with the potentially modified parm set
- pod_coverage_ok($module, $parms, "$module POD coverage");
+ Test::Pod::Coverage::pod_coverage_ok($module, $parms, "$module POD coverage");
}
}
Modified: DBIx-Class/0.08/branches/run_file_against_storage/t/52cycle.t
===================================================================
--- DBIx-Class/0.08/branches/run_file_against_storage/t/52cycle.t 2010-02-21 12:38:37 UTC (rev 8788)
+++ DBIx-Class/0.08/branches/run_file_against_storage/t/52cycle.t 2010-02-21 12:42:10 UTC (rev 8789)
@@ -5,10 +5,9 @@
use lib qw(t/lib);
BEGIN {
- eval { require Test::Memory::Cycle; require Devel::Cycle };
- if ($@ or Devel::Cycle->VERSION < 1.10) {
- plan skip_all => "leak test needs Test::Memory::Cycle and Devel::Cycle >= 1.10";
- };
+ require DBIx::Class;
+ plan skip_all => 'Test needs: ' . DBIx::Class::Optional::Dependencies->req_missing_for ('test_cycle')
+ unless ( DBIx::Class::Optional::Dependencies->req_ok_for ('test_cycle') );
}
use DBICTest;
Modified: DBIx-Class/0.08/branches/run_file_against_storage/t/69update.t
===================================================================
--- DBIx-Class/0.08/branches/run_file_against_storage/t/69update.t 2010-02-21 12:38:37 UTC (rev 8788)
+++ DBIx-Class/0.08/branches/run_file_against_storage/t/69update.t 2010-02-21 12:42:10 UTC (rev 8789)
@@ -7,11 +7,6 @@
my $schema = DBICTest->init_schema();
-BEGIN {
- eval "use DBD::SQLite";
- plan $@ ? (skip_all => 'needs DBD::SQLite for testing') : (tests => 6);
-}
-
my $art = $schema->resultset("Artist")->find(1);
isa_ok $art => 'DBICTest::Artist';
@@ -20,10 +15,10 @@
ok($art->name($name) eq $name, 'update');
-{
+{
my @changed_keys = $art->is_changed;
is( scalar (@changed_keys), 0, 'field changed but same value' );
-}
+}
$art->discard_changes;
@@ -34,3 +29,5 @@
my $art_100 = $schema->resultset("Artist")->find(100);
$art_100->artistid(101);
ok($art_100->update(), 'update allows pk mutation via column accessor');
+
+done_testing;
Modified: DBIx-Class/0.08/branches/run_file_against_storage/t/75limit.t
===================================================================
--- DBIx-Class/0.08/branches/run_file_against_storage/t/75limit.t 2010-02-21 12:38:37 UTC (rev 8788)
+++ DBIx-Class/0.08/branches/run_file_against_storage/t/75limit.t 2010-02-21 12:42:10 UTC (rev 8789)
@@ -7,11 +7,6 @@
my $schema = DBICTest->init_schema();
-BEGIN {
- eval "use DBD::SQLite";
- plan $@ ? (skip_all => 'needs DBD::SQLite for testing') : (tests => 10);
-}
-
# test LIMIT
my $it = $schema->resultset("CD")->search( {},
{ rows => 3,
@@ -77,3 +72,4 @@
);
is( $it->count, 1, "complex abstract count ok" );
+done_testing;
Modified: DBIx-Class/0.08/branches/run_file_against_storage/t/76joins.t
===================================================================
--- DBIx-Class/0.08/branches/run_file_against_storage/t/76joins.t 2010-02-21 12:38:37 UTC (rev 8788)
+++ DBIx-Class/0.08/branches/run_file_against_storage/t/76joins.t 2010-02-21 12:42:10 UTC (rev 8789)
@@ -10,13 +10,6 @@
my $orig_debug = $schema->storage->debug;
-BEGIN {
- eval "use DBD::SQLite";
- plan $@
- ? ( skip_all => 'needs DBD::SQLite for testing' )
- : ( tests => 33 );
-}
-
# test the abstract join => SQL generator
my $sa = new DBIx::Class::SQLAHacks;
@@ -240,3 +233,5 @@
is(cd_count(), 5, '5 rows in table cd');
is(tk_count(), 3, '3 rows in table twokeys');
}
+
+done_testing;
Modified: DBIx-Class/0.08/branches/run_file_against_storage/t/99dbic_sqlt_parser.t
===================================================================
--- DBIx-Class/0.08/branches/run_file_against_storage/t/99dbic_sqlt_parser.t 2010-02-21 12:38:37 UTC (rev 8788)
+++ DBIx-Class/0.08/branches/run_file_against_storage/t/99dbic_sqlt_parser.t 2010-02-21 12:42:10 UTC (rev 8789)
@@ -18,13 +18,18 @@
# Test for SQLT-related leaks
{
my $s = DBICTest::Schema->clone;
- create_schema ({ schema => $s });
+ my $sqlt_schema = create_schema ({ schema => $s });
Scalar::Util::weaken ($s);
ok (!$s, 'Schema not leaked');
+
+ isa_ok ($sqlt_schema, 'SQL::Translator::Schema', 'SQLT schema object produced');
}
+# make sure classname-style works
+lives_ok { isa_ok (create_schema ({ schema => 'DBICTest::Schema' }), 'SQL::Translator::Schema', 'SQLT schema object produced') };
+
my $schema = DBICTest->init_schema();
# Dummy was yanked out by the sqlt hook test
# CustomSql tests the horrific/deprecated ->name(\$sql) hack
Modified: DBIx-Class/0.08/branches/run_file_against_storage/t/admin/02ddl.t
===================================================================
--- DBIx-Class/0.08/branches/run_file_against_storage/t/admin/02ddl.t 2010-02-21 12:38:37 UTC (rev 8788)
+++ DBIx-Class/0.08/branches/run_file_against_storage/t/admin/02ddl.t 2010-02-21 12:42:10 UTC (rev 8789)
@@ -19,7 +19,7 @@
use Path::Class;
-use ok 'DBIx::Class::Admin';
+use_ok 'DBIx::Class::Admin';
my $sql_dir = dir(qw/t var/);
Modified: DBIx-Class/0.08/branches/run_file_against_storage/t/admin/03data.t
===================================================================
--- DBIx-Class/0.08/branches/run_file_against_storage/t/admin/03data.t 2010-02-21 12:38:37 UTC (rev 8788)
+++ DBIx-Class/0.08/branches/run_file_against_storage/t/admin/03data.t 2010-02-21 12:42:10 UTC (rev 8789)
@@ -4,7 +4,6 @@
use Test::More;
use Test::Exception;
-use Test::Deep;
BEGIN {
require DBIx::Class;
@@ -15,7 +14,7 @@
use lib 't/lib';
use DBICTest;
-use ok 'DBIx::Class::Admin';
+use_ok 'DBIx::Class::Admin';
{ # test data maniplulation functions
@@ -54,7 +53,7 @@
];
my $data;
lives_ok { $data = $admin->select('Employee')} 'can retrive data from database';
- cmp_deeply($data, $expected_data, 'DB matches whats expected');
+ is_deeply($data, $expected_data, 'DB matches whats expected');
$admin->delete('Employee', {name=>'Trout'});
my $del_rs = $employees->search({name => 'Trout'});
Modified: DBIx-Class/0.08/branches/run_file_against_storage/t/bind/attribute.t
===================================================================
--- DBIx-Class/0.08/branches/run_file_against_storage/t/bind/attribute.t 2010-02-21 12:38:37 UTC (rev 8788)
+++ DBIx-Class/0.08/branches/run_file_against_storage/t/bind/attribute.t 2010-02-21 12:42:10 UTC (rev 8789)
@@ -9,13 +9,6 @@
my $schema = DBICTest->init_schema;
-BEGIN {
- eval "use DBD::SQLite";
- plan $@
- ? ( skip_all => 'needs DBD::SQLite for testing' )
- : ( tests => 13 );
-}
-
my $where_bind = {
where => \'name like ?',
bind => [ 'Cat%' ],
@@ -122,3 +115,5 @@
bind => [ 'Spoon%' ] });
is ( $rs->count, 1, '...cookbook + chained search with extra bind' );
}
+
+done_testing;
Modified: DBIx-Class/0.08/branches/run_file_against_storage/t/count/distinct.t
===================================================================
--- DBIx-Class/0.08/branches/run_file_against_storage/t/count/distinct.t 2010-02-21 12:38:37 UTC (rev 8788)
+++ DBIx-Class/0.08/branches/run_file_against_storage/t/count/distinct.t 2010-02-21 12:42:10 UTC (rev 8789)
@@ -74,7 +74,7 @@
$rs = $schema->resultset('Tag')->search({ tag => 'Blue' }, { '+select' => { max => 'tagid' }, distinct => 1 });
is($get_count->($rs), 4, 'Count with +select aggreggate');
- $rs = $schema->resultset('Tag')->search({}, { select => 'length(me.tag)', distinct => 1 });
+ $rs = $schema->resultset('Tag')->search({}, { select => [\'length(me.tag)'], distinct => 1 });
is($get_count->($rs), 3, 'Count by distinct function result as select literal');
}
Added: DBIx-Class/0.08/branches/run_file_against_storage/t/count/group_by_func.t
===================================================================
--- DBIx-Class/0.08/branches/run_file_against_storage/t/count/group_by_func.t (rev 0)
+++ DBIx-Class/0.08/branches/run_file_against_storage/t/count/group_by_func.t 2010-02-21 12:42:10 UTC (rev 8789)
@@ -0,0 +1,36 @@
+use strict;
+use warnings;
+
+use Test::More;
+
+use lib qw(t/lib);
+
+use DBICTest;
+
+my $schema = DBICTest->init_schema();
+
+my $rs = $schema->resultset ('CD')->search ({}, {
+ select => [
+ { substr => [ 'title', 1, 1 ], -as => 'initial' },
+ { count => '*' },
+ ],
+ as => [qw/title_initial cnt/],
+ group_by => ['initial'],
+ order_by => { -desc => 'initial' },
+ result_class => 'DBIx::Class::ResultClass::HashRefInflator',
+});
+
+is_deeply (
+ [$rs->all],
+ [
+ { title_initial => 'S', cnt => '1' },
+ { title_initial => 'G', cnt => '1' },
+ { title_initial => 'F', cnt => '1' },
+ { title_initial => 'C', cnt => '2' },
+ ],
+ 'Correct result',
+);
+
+is ($rs->count, 4, 'Correct count');
+
+done_testing;
Modified: DBIx-Class/0.08/branches/run_file_against_storage/t/inflate/hri.t
===================================================================
--- DBIx-Class/0.08/branches/run_file_against_storage/t/inflate/hri.t 2010-02-21 12:38:37 UTC (rev 8788)
+++ DBIx-Class/0.08/branches/run_file_against_storage/t/inflate/hri.t 2010-02-21 12:42:10 UTC (rev 8789)
@@ -26,6 +26,9 @@
my $cd1 = $rs->find ({cdid => 1});
is_deeply ( $cd1, $datahashref1, 'first/find return the same thing');
+
+ my $cd2 = $rs->search({ cdid => 1 })->single;
+ is_deeply ( $cd2, $datahashref1, 'first/search+single return the same thing');
}
sub check_cols_of {
Modified: DBIx-Class/0.08/branches/run_file_against_storage/t/sqlahacks/quotes/quotes.t
===================================================================
--- DBIx-Class/0.08/branches/run_file_against_storage/t/sqlahacks/quotes/quotes.t 2010-02-21 12:38:37 UTC (rev 8788)
+++ DBIx-Class/0.08/branches/run_file_against_storage/t/sqlahacks/quotes/quotes.t 2010-02-21 12:42:10 UTC (rev 8789)
@@ -6,14 +6,7 @@
use lib qw(t/lib);
use DBIC::SqlMakerTest;
-BEGIN {
- eval "use DBD::SQLite";
- plan $@
- ? ( skip_all => 'needs DBD::SQLite for testing' )
- : ( tests => 7 );
-}
-
use_ok('DBICTest');
use_ok('DBIC::DebugObj');
my $schema = DBICTest->init_schema();
@@ -72,3 +65,5 @@
$schema->storage->sql_maker->name_sep('.');
is($schema->storage->sql_maker->update('group', \%data), 'UPDATE `group` SET `name` = ?, `order` = ?', 'quoted table names for UPDATE');
+
+done_testing;
Modified: DBIx-Class/0.08/branches/run_file_against_storage/t/sqlahacks/quotes/quotes_newstyle.t
===================================================================
--- DBIx-Class/0.08/branches/run_file_against_storage/t/sqlahacks/quotes/quotes_newstyle.t 2010-02-21 12:38:37 UTC (rev 8788)
+++ DBIx-Class/0.08/branches/run_file_against_storage/t/sqlahacks/quotes/quotes_newstyle.t 2010-02-21 12:42:10 UTC (rev 8789)
@@ -6,13 +6,6 @@
use lib qw(t/lib);
use DBIC::SqlMakerTest;
-BEGIN {
- eval "use DBD::SQLite";
- plan $@
- ? ( skip_all => 'needs DBD::SQLite for testing' )
- : ( tests => 7 );
-}
-
use_ok('DBICTest');
use_ok('DBIC::DebugObj');
@@ -89,3 +82,5 @@
);
is($schema->storage->sql_maker->update('group', \%data), 'UPDATE `group` SET `name` = ?, `order` = ?', 'quoted table names for UPDATE');
+
+done_testing;
Modified: DBIx-Class/0.08/branches/run_file_against_storage/t/storage/error.t
===================================================================
--- DBIx-Class/0.08/branches/run_file_against_storage/t/storage/error.t 2010-02-21 12:38:37 UTC (rev 8788)
+++ DBIx-Class/0.08/branches/run_file_against_storage/t/storage/error.t 2010-02-21 12:42:10 UTC (rev 8789)
@@ -1,29 +1,20 @@
-use Class::C3;
use strict;
-use Test::More;
use warnings;
-BEGIN {
- eval "use DBD::SQLite";
- plan $@
- ? ( skip_all => 'needs DBD::SQLite for testing' )
- : ( tests => 4 );
-}
+use Test::More;
+use Test::Warn;
+use Test::Exception;
use lib qw(t/lib);
-
use_ok( 'DBICTest' );
use_ok( 'DBICTest::Schema' );
+
my $schema = DBICTest->init_schema;
-{
- my $warnings;
- local $SIG{__WARN__} = sub { $warnings .= $_[0] };
- eval {
- $schema->resultset('CD')
- ->create({ title => 'vacation in antarctica' })
- };
- like $@, qr/NULL/; # as opposed to some other error
- unlike( $warnings, qr/uninitialized value/, "No warning from Storage" );
-}
+warnings_are ( sub {
+ throws_ok (sub {
+ $schema->resultset('CD')->create({ title => 'vacation in antarctica' });
+ }, qr/NULL/); # as opposed to some other error
+}, [], 'No warnings besides exception' );
+done_testing;
More information about the Bast-commits
mailing list