[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