[Bast-commits] r9496 - in DBIx-Class/0.08/branches/rs_UD_cleanup: . lib/DBIx/Class lib/DBIx/Class/InflateColumn lib/DBIx/Class/Optional lib/DBIx/Class/Relationship lib/DBIx/Class/Schema lib/DBIx/Class/Storage lib/DBIx/Class/Storage/DBI lib/DBIx/Class/Storage/DBI/ODBC lib/DBIx/Class/Storage/DBI/Oracle lib/DBIx/Class/Storage/DBI/Replicated lib/DBIx/Class/Storage/DBI/Sybase lib/SQL/Translator/Parser/DBIx script t t/admin t/bind t/inflate t/lib t/lib/DBICTest/Schema t/lib/testinclude t/search t/sqlahacks/limit_dialects t/var

ribasushi at dev.catalyst.perl.org ribasushi at dev.catalyst.perl.org
Mon May 31 22:18:10 GMT 2010


Author: ribasushi
Date: 2010-05-31 23:18:10 +0100 (Mon, 31 May 2010)
New Revision: 9496

Added:
   DBIx-Class/0.08/branches/rs_UD_cleanup/t/admin/04include.t
   DBIx-Class/0.08/branches/rs_UD_cleanup/t/lib/testinclude/
   DBIx-Class/0.08/branches/rs_UD_cleanup/t/lib/testinclude/DBICTestAdminInc.pm
   DBIx-Class/0.08/branches/rs_UD_cleanup/t/sqlahacks/limit_dialects/generic_subq.t
   DBIx-Class/0.08/branches/rs_UD_cleanup/t/var/
Modified:
   DBIx-Class/0.08/branches/rs_UD_cleanup/
   DBIx-Class/0.08/branches/rs_UD_cleanup/Changes
   DBIx-Class/0.08/branches/rs_UD_cleanup/Makefile.PL
   DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Admin.pm
   DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Exception.pm
   DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/InflateColumn/DateTime.pm
   DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Optional/Dependencies.pm
   DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Relationship/Base.pm
   DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Relationship/BelongsTo.pm
   DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Relationship/HasMany.pm
   DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Relationship/HasOne.pm
   DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/ResultSource.pm
   DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Row.pm
   DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/SQLAHacks.pm
   DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Schema.pm
   DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Schema/Versioned.pm
   DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage.pm
   DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI.pm
   DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/ADO.pm
   DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/Cursor.pm
   DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/InterBase.pm
   DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/MSSQL.pm
   DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/ODBC.pm
   DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/ODBC/Microsoft_SQL_Server.pm
   DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/Oracle.pm
   DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/Oracle/Generic.pm
   DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/Replicated.pm
   DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/Replicated/WithDSN.pm
   DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/SQLAnywhere.pm
   DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/Sybase.pm
   DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/Sybase/ASE.pm
   DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/Sybase/Microsoft_SQL_Server.pm
   DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/TxnScopeGuard.pm
   DBIx-Class/0.08/branches/rs_UD_cleanup/lib/SQL/Translator/Parser/DBIx/Class.pm
   DBIx-Class/0.08/branches/rs_UD_cleanup/script/dbicadmin
   DBIx-Class/0.08/branches/rs_UD_cleanup/t/
   DBIx-Class/0.08/branches/rs_UD_cleanup/t/746mssql.t
   DBIx-Class/0.08/branches/rs_UD_cleanup/t/74mssql.t
   DBIx-Class/0.08/branches/rs_UD_cleanup/t/admin/02ddl.t
   DBIx-Class/0.08/branches/rs_UD_cleanup/t/admin/10script.t
   DBIx-Class/0.08/branches/rs_UD_cleanup/t/bind/order_by.t
   DBIx-Class/0.08/branches/rs_UD_cleanup/t/inflate/datetime_mssql.t
   DBIx-Class/0.08/branches/rs_UD_cleanup/t/lib/DBICTest/Schema/BooksInLibrary.pm
   DBIx-Class/0.08/branches/rs_UD_cleanup/t/lib/DBICVersion_v1.pm
   DBIx-Class/0.08/branches/rs_UD_cleanup/t/lib/DBICVersion_v2.pm
   DBIx-Class/0.08/branches/rs_UD_cleanup/t/search/subquery.t
   DBIx-Class/0.08/branches/rs_UD_cleanup/t/sqlahacks/limit_dialects/toplimit.t
Log:
 r9475 at Thesaurus (orig r9461):  ribasushi | 2010-05-31 00:17:29 +0200
 Rewrite GenericSubQ from SQLA::L to be actually useful
 Since it now works it is no longer necessary to turn on softlimit when genericsubq is detected
 Switch all sprintf()ed limit/offset specs to unsigned integers
 Lower the default rows-without-offset to 2^32
 r9476 at Thesaurus (orig r9462):  rabbit | 2010-05-31 00:25:01 +0200
 New format of changelog (easier to read)
 r9477 at Thesaurus (orig r9463):  rabbit | 2010-05-31 00:27:18 +0200
 Fix MC double-object creation (important for e.g. IC::FS which otherwise leaves orphaned files)
 r9479 at Thesaurus (orig r9465):  rabbit | 2010-05-31 00:37:23 +0200
 Fix tests to survive the new SQLA bindtype checks
 r9483 at Thesaurus (orig r9469):  rabbit | 2010-05-31 13:21:04 +0200
 Skip tests segfaulting with ancient DBD::Sybase versions
 r9488 at Thesaurus (orig r9474):  frew | 2010-05-31 17:11:51 +0200
 use namespace::clean w/ Try::Tiny
 r9489 at Thesaurus (orig r9475):  rabbit | 2010-05-31 17:13:29 +0200
 Fix Top-limit problem of missed bindvars
 r9490 at Thesaurus (orig r9476):  rabbit | 2010-05-31 17:21:20 +0200
 Skip failing tests on old DBD
 r9491 at Thesaurus (orig r9477):  frew | 2010-05-31 17:23:49 +0200
 add namespace::clean as regular dep
 r9501 at Thesaurus (orig r9487):  rabbit | 2010-05-31 19:45:27 +0200
 Fix RT57467, simplify test
 r9503 at Thesaurus (orig r9489):  rabbit | 2010-05-31 23:52:17 +0200
 Fix Schema::Versioned borkage
 r9506 at Thesaurus (orig r9492):  rabbit | 2010-06-01 00:08:45 +0200
  r9306 at Thesaurus (orig r9293):  edenc | 2010-05-03 21:20:21 +0200
  braching for bug fixes (rt 54939)
  r9339 at Thesaurus (orig r9326):  edenc | 2010-05-07 18:15:47 +0200
  added failing test case for non-versioned schema deploy attempt
  r9340 at Thesaurus (orig r9327):  edenc | 2010-05-07 18:16:03 +0200
  dbicadmin can now install non-versioned schemas
  r9342 at Thesaurus (orig r9329):  rabbit | 2010-05-07 18:28:27 +0200
  Trap erroneous warnings
  r9345 at Thesaurus (orig r9332):  edenc | 2010-05-08 00:02:00 +0200
  test for the dbicadmin -I option
  r9346 at Thesaurus (orig r9333):  edenc | 2010-05-08 00:02:25 +0200
  fixes to dbicadmin -I test
  r9347 at Thesaurus (orig r9334):  edenc | 2010-05-08 00:02:41 +0200
  -I option functional and passing tests
  r9348 at Thesaurus (orig r9335):  edenc | 2010-05-08 01:39:52 +0200
  moved mock schema out of t/var
  r9375 at Thesaurus (orig r9361):  edenc | 2010-05-14 04:02:41 +0200
  added debug option
  r9376 at Thesaurus (orig r9362):  edenc | 2010-05-14 04:03:00 +0200
  debug and include_dirs integration between dbicadmin and DBIx::Class::Admin
  r9377 at Thesaurus (orig r9363):  edenc | 2010-05-14 04:03:21 +0200
  testing dbicadmin/DBIx::Class::Admin integration
  r9494 at Thesaurus (orig r9480):  rabbit | 2010-05-31 18:03:08 +0200
  Simplify includedir testing
  r9496 at Thesaurus (orig r9482):  rabbit | 2010-05-31 18:47:35 +0200
  Some comments
  r9497 at Thesaurus (orig r9483):  rabbit | 2010-05-31 18:50:50 +0200
  Properly ignore contents of var
  r9498 at Thesaurus (orig r9484):  rabbit | 2010-05-31 18:59:49 +0200
  Remove leftovers
  r9499 at Thesaurus (orig r9485):  rabbit | 2010-05-31 19:24:55 +0200
  Cleanup debug output
  r9500 at Thesaurus (orig r9486):  rabbit | 2010-05-31 19:35:31 +0200
  Fix RT#57732
  r9502 at Thesaurus (orig r9488):  rabbit | 2010-05-31 19:48:41 +0200
  typos
  r9505 at Thesaurus (orig r9491):  rabbit | 2010-06-01 00:08:29 +0200
  Changes
 



Property changes on: DBIx-Class/0.08/branches/rs_UD_cleanup
___________________________________________________________________
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_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/filter_column:9343
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_quotes:8812
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/pod_fixes:8902
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-interbase:8929
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/subqueried_limit_fixes:9304
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/try-tiny:9436
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:9450
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-non-versioned:9491
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/filter_column:9343
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_quotes:8812
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/pod_fixes:8902
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-interbase:8929
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/subqueried_limit_fixes:9304
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/try-tiny:9436
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:9492
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/rs_UD_cleanup/Changes
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/Changes	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/Changes	2010-05-31 22:18:10 UTC (rev 9496)
@@ -1,15 +1,12 @@
 Revision history for DBIx::Class
 
-        - Fix find() to use result_class set on object
-        - Fix result_class setter behaviour to not mistakenly stuff attrs.
-        - Don't try and ensure_class_loaded an object. This doesn't work.
-        - Add a warning to load_namespaces if a class in ResultSet/
-          is not a subclass of DBIx::Class::ResultSet
+    * New Features
+        - Add DBIx::Class::FilterColumn for non-ref filtering
         - ::Storage::DBI now correctly preserves a parent $dbh from
           terminating children, even during interpreter-global
           out-of-order destruction
-        - All DBIC exception-handling switched to Try::Tiny
-        - Add DBIx::Class::FilterColumn for non-ref filtering
+        - dbicadmin supports an -I option with the same semantics as
+          perl itself
         - InflateColumn::DateTime support for MSSQL via DBD::Sybase
         - Millisecond precision support for MSSQL datetimes for
           InflateColumn::DateTime
@@ -22,16 +19,38 @@
           resultsets
         - MSSQL limits now don't require nearly as many applications of
           the unsafe_subselect_ok attribute, due to optimized queries
+        - Support for Generic Subquery limit "emulation" - awfully slow
+          and inefficient but works on almost any db, and is preferred
+          to a soft-limit
+
+    * Fixes
+        - Fix nasty potentially data-eating bug when deleting/updating
+          a limited resultset
+        - Fix find() to use result_class set on object
+        - Fix result_class setter behaviour to not mistakenly stuff attrs.
+        - Don't try and ensure_class_loaded an object. This doesn't work.
         - Fix as_subselect_rs to not inject resultset class-wide where
           conditions outside of the resulting subquery
-        - Fix nasty potentially data-eating bug when deleting/updating
-          a limited resultset
-        - Depend on optimized SQL::Abstract (faster SQL generation)
         - update() on row not in_storage no longer throws an exception
           if there are no dirty columns to update (fixes cascaded update
           annoyances)
-        - Update Schema::Versioned to respect hashref style of connection_info
+        - Fix dbicadmin to allow deploy() on non-versioned schema
+        - Fix dbicadmin to respect sql_dir on upgrade() (RT#57732)
+        - Update Schema::Versioned to respect hashref style of
+          connection_info
+        - Do not recreate the same related object twice during MultiCreate
+          (solves the problem of orphaned IC::FS files)
+        - Fully qualify xp_msver selector when using DBD::Sybase with
+          MSSQL (RT#57467)
+        - Fix ::DBI::Storage to always be able to present a full set of
+          connect() attributes to e.g. Schema::Versioned
 
+    * Misc
+        - Add a warning to load_namespaces if a class in ResultSet/
+          is not a subclass of DBIx::Class::ResultSet
+        - All DBIC exception-handling switched to Try::Tiny
+        - Depend on optimized SQL::Abstract (faster SQL generation)
+
 0.08121 2010-04-11 18:43:00 (UTC)
         - Support for Firebird RDBMS with DBD::InterBase and ODBC
         - Add core support for INSERT RETURNING (for storages that

Modified: DBIx-Class/0.08/branches/rs_UD_cleanup/Makefile.PL
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/Makefile.PL	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/Makefile.PL	2010-05-31 22:18:10 UTC (rev 9496)
@@ -51,6 +51,7 @@
   'Scope::Guard'             => '0.03',
   'Context::Preserve'        => '0.01',
   'Try::Tiny'                => '0.04',
+  'namespace::clean'         => '0.14',
 };
 
 # this is so we can order requires alphabetically

Modified: DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Admin.pm
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Admin.pm	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Admin.pm	2010-05-31 22:18:10 UTC (rev 9496)
@@ -88,13 +88,27 @@
 sub _build_schema {
   my ($self)  = @_;
   require Class::MOP;
-  Class::MOP::load_class($self->schema_class);
-
+  {
+    my @include_dirs = @{$self->include_dirs};
+    local @INC = (@include_dirs, @INC);
+    Class::MOP::load_class($self->schema_class);
+  }
   $self->connect_info->[3]->{ignore_version} =1;
   return $self->schema_class->connect(@{$self->connect_info()} ); # ,  $self->connect_info->[3], { ignore_version => 1} );
 }
 
+=head2 include_dirs
 
+Extra include directories to look when loading C<schema_class>
+
+=cut
+
+has 'include_dirs' => (
+    is => 'rw',
+    isa => 'ArrayRef',
+    default => sub {[]}
+);
+
 =head2 resultset
 
 a resultset from the schema to operate on
@@ -195,7 +209,7 @@
 
 =head2 config
 
-Instead of loading from a file the configuration can be provided directly as a hash ref.  Please note 
+Instead of loading from a file the configuration can be provided directly as a hash ref.  Please note
 config_stanza will still be required.
 
 =cut
@@ -296,8 +310,9 @@
 
 =back
 
-L<create> will generate sql for the supplied schema_class in sql_dir.  The flavour of sql to 
-generate can be controlled by suppling a sqlt_type which should be a L<SQL::Translator> name.  
+L<create> will generate sql for the supplied schema_class in sql_dir. The
+flavour of sql to generate can be controlled by supplying a sqlt_type which
+should be a L<SQL::Translator> name.
 
 Arguments for L<SQL::Translator> can be supplied in the sqlt_args hashref.
 
@@ -334,10 +349,12 @@
 sub upgrade {
   my ($self) = @_;
   my $schema = $self->schema();
+
   if (!$schema->get_db_version()) {
     # schema is unversioned
     $schema->throw_exception ("Could not determin current schema version, please either install() or deploy().\n");
   } else {
+    $schema->upgrade_directory ($self->sql_dir) if $self->sql_dir;  # this will override whatever default the schema has
     my $ret = $schema->upgrade();
     return $ret;
   }
@@ -352,9 +369,9 @@
 
 =back
 
-install is here to help when you want to move to L<DBIx::Class::Schema::Versioned> and have an existing 
-database.  install will take a version and add the version tracking tables and 'install' the version.  No 
-further ddl modification takes place.  Setting the force attribute to a true value will allow overriding of 
+install is here to help when you want to move to L<DBIx::Class::Schema::Versioned> and have an existing
+database.  install will take a version and add the version tracking tables and 'install' the version.  No
+further ddl modification takes place.  Setting the force attribute to a true value will allow overriding of
 already versioned databases.
 
 =cut
@@ -366,9 +383,9 @@
   $version ||= $self->version();
   if (!$schema->get_db_version() ) {
     # schema is unversioned
-    print "Going to install schema version\n";
+    print "Going to install schema version\n" if (!$self->quiet);
     my $ret = $schema->install($version);
-    print "retun is $ret\n";
+    print "return is $ret\n" if (!$self->quiet);
   }
   elsif ($schema->get_db_version() and $self->force ) {
     carp "Forcing install may not be a good idea";
@@ -391,7 +408,7 @@
 
 =back
 
-deploy will create the schema at the connected database.  C<$args> are passed straight to 
+deploy will create the schema at the connected database.  C<$args> are passed straight to
 L<DBIx::Class::Schema/deploy>.
 
 =cut
@@ -399,13 +416,7 @@
 sub deploy {
   my ($self, $args) = @_;
   my $schema = $self->schema();
-  if (!$schema->get_db_version() ) {
-    # schema is unversioned
-    $schema->deploy( $args, $self->sql_dir)
-      or $schema->throw_exception ("Could not deploy schema.\n"); # FIXME deploy() does not return 1/0 on success/fail
-  } else {
-    $schema->throw_exception("A versioned schema has already been deployed, try upgrade instead.\n");
-  }
+  $schema->deploy( $args, $self->sql_dir );
 }
 
 =head2 insert
@@ -502,7 +513,7 @@
 
 =back
 
-select takes the name of a resultset from the schema_class, a where hashref and a attrs to pass to ->search. 
+select takes the name of a resultset from the schema_class, a where hashref and a attrs to pass to ->search.
 The found data is returned in a array ref where the first row will be the columns list.
 
 =cut
@@ -518,7 +529,7 @@
 
   my @data;
   my @columns = $resultset->result_source->columns();
-  push @data, [@columns];# 
+  push @data, [@columns];#
 
   while (my $row = $resultset->next()) {
     my @fields;
@@ -533,12 +544,14 @@
 
 sub _confirm {
   my ($self) = @_;
-  print "Are you sure you want to do this? (type YES to confirm) \n";
+
   # mainly here for testing
   return 1 if ($self->meta->get_attribute('_confirm')->get_value($self));
+
+  print "Are you sure you want to do this? (type YES to confirm) \n";
   my $response = <STDIN>;
-  return 1 if ($response=~/^YES/);
-  return;
+
+  return ($response=~/^YES/);
 }
 
 sub _find_stanza {

Modified: DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Exception.pm
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Exception.pm	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Exception.pm	2010-05-31 22:18:10 UTC (rev 9496)
@@ -6,6 +6,7 @@
 use Carp::Clan qw/^DBIx::Class|^Try::Tiny/;
 use Scalar::Util qw/blessed/;
 use Try::Tiny;
+use namespace::clean;
 
 use overload
     '""' => sub { shift->{msg} },

Modified: DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/InflateColumn/DateTime.pm
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/InflateColumn/DateTime.pm	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/InflateColumn/DateTime.pm	2010-05-31 22:18:10 UTC (rev 9496)
@@ -5,6 +5,7 @@
 use base qw/DBIx::Class/;
 use Carp::Clan qw/^DBIx::Class/;
 use Try::Tiny;
+use namespace::clean;
 
 =head1 NAME
 
@@ -12,7 +13,7 @@
 
 =head1 SYNOPSIS
 
-Load this component and then declare one or more 
+Load this component and then declare one or more
 columns to be of the datetime, timestamp or date datatype.
 
   package Event;
@@ -63,9 +64,9 @@
 
 =head1 DESCRIPTION
 
-This module figures out the type of DateTime::Format::* class to 
-inflate/deflate with based on the type of DBIx::Class::Storage::DBI::* 
-that you are using.  If you switch from one database to a different 
+This module figures out the type of DateTime::Format::* class to
+inflate/deflate with based on the type of DBIx::Class::Storage::DBI::*
+that you are using.  If you switch from one database to a different
 one your code should continue to work without modification (though note
 that this feature is new as of 0.07, so it may not be perfect yet - bug
 reports to the list very much welcome).
@@ -296,11 +297,11 @@
 
 =over 4
 
-=item More information about the add_columns method, and column metadata, 
+=item More information about the add_columns method, and column metadata,
       can be found in the documentation for L<DBIx::Class::ResultSource>.
 
 =item Further discussion of problems inherent to the Floating timezone:
-      L<Floating DateTimes|DateTime/Floating_DateTimes> 
+      L<Floating DateTimes|DateTime/Floating_DateTimes>
       and L<< $dt->set_time_zone|DateTime/"Set" Methods >>
 
 =back

Modified: DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Optional/Dependencies.pm
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Optional/Dependencies.pm	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Optional/Dependencies.pm	2010-05-31 22:18:10 UTC (rev 9496)
@@ -32,7 +32,6 @@
   replicated => {
     req => {
       %$moose_basic,
-      'namespace::clean'          => '0.11',
       'Hash::Merge'               => '0.12',
     },
     pod => {
@@ -358,7 +357,7 @@
     <<'EOD',
 Dependencies are organized in C<groups> and each group can list one or more
 required modules, with an optional minimum version (or 0 for any version).
-The group name can be used in the 
+The group name can be used in the
 EOD
   );
 

Modified: DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Relationship/Base.pm
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Relationship/Base.pm	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Relationship/Base.pm	2010-05-31 22:18:10 UTC (rev 9496)
@@ -6,6 +6,7 @@
 use Scalar::Util ();
 use base qw/DBIx::Class/;
 use Try::Tiny;
+use namespace::clean;
 
 =head1 NAME
 
@@ -119,7 +120,7 @@
 =item is_foreign_key_constraint
 
 If you are using L<SQL::Translator> to create SQL for you and you find that it
-is creating constraints where it shouldn't, or not creating them where it 
+is creating constraints where it shouldn't, or not creating them where it
 should, set this attribute to a true or false value to override the detection
 of when to create constraints.
 
@@ -127,8 +128,8 @@
 
 If C<cascade_copy> is true on a C<has_many> relationship for an
 object, then when you copy the object all the related objects will
-be copied too. To turn this behaviour off, pass C<< cascade_copy => 0 >> 
-in the C<$attr> hashref. 
+be copied too. To turn this behaviour off, pass C<< cascade_copy => 0 >>
+in the C<$attr> hashref.
 
 The behaviour defaults to C<< cascade_copy => 1 >> for C<has_many>
 relationships.
@@ -137,7 +138,7 @@
 
 By default, DBIx::Class cascades deletes across C<has_many>,
 C<has_one> and C<might_have> relationships. You can disable this
-behaviour on a per-relationship basis by supplying 
+behaviour on a per-relationship basis by supplying
 C<< cascade_delete => 0 >> in the relationship attributes.
 
 The cascaded operations are performed after the requested delete,
@@ -160,14 +161,14 @@
 =item on_delete / on_update
 
 If you are using L<SQL::Translator> to create SQL for you, you can use these
-attributes to explicitly set the desired C<ON DELETE> or C<ON UPDATE> constraint 
-type. If not supplied the SQLT parser will attempt to infer the constraint type by 
+attributes to explicitly set the desired C<ON DELETE> or C<ON UPDATE> constraint
+type. If not supplied the SQLT parser will attempt to infer the constraint type by
 interrogating the attributes of the B<opposite> relationship. For any 'multi'
-relationship with C<< cascade_delete => 1 >>, the corresponding belongs_to 
-relationship will be created with an C<ON DELETE CASCADE> constraint. For any 
+relationship with C<< cascade_delete => 1 >>, the corresponding belongs_to
+relationship will be created with an C<ON DELETE CASCADE> constraint. For any
 relationship bearing C<< cascade_copy => 1 >> the resulting belongs_to constraint
 will be C<ON UPDATE CASCADE>. If you wish to disable this autodetection, and just
-use the RDBMS' default constraint type, pass C<< on_delete => undef >> or 
+use the RDBMS' default constraint type, pass C<< on_delete => undef >> or
 C<< on_delete => '' >>, and the same for C<on_update> respectively.
 
 =item is_deferrable
@@ -305,7 +306,7 @@
 
   ( $objects_rs ) = $rs->search_related_rs('relname', $cond, $attrs);
 
-This method works exactly the same as search_related, except that 
+This method works exactly the same as search_related, except that
 it guarantees a resultset, even in list context.
 
 =cut
@@ -335,9 +336,9 @@
   my $new_obj = $obj->new_related('relname', \%col_data);
 
 Create a new item of the related foreign class. If called on a
-L<Row|DBIx::Class::Manual::Glossary/"Row"> object, it will magically 
-set any foreign key columns of the new object to the related primary 
-key columns of the source object for you.  The newly created item will 
+L<Row|DBIx::Class::Manual::Glossary/"Row"> object, it will magically
+set any foreign key columns of the new object to the related primary
+key columns of the source object for you.  The newly created item will
 not be saved into your storage until you call L<DBIx::Class::Row/insert>
 on it.
 
@@ -532,7 +533,7 @@
 =back
 
   my $actor = $schema->resultset('Actor')->find(1);
-  my @roles = $schema->resultset('Role')->search({ role => 
+  my @roles = $schema->resultset('Role')->search({ role =>
      { '-in' => ['Fred', 'Barney'] } } );
 
   $actor->set_roles(\@roles);

Modified: DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Relationship/BelongsTo.pm
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Relationship/BelongsTo.pm	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Relationship/BelongsTo.pm	2010-05-31 22:18:10 UTC (rev 9496)
@@ -7,8 +7,9 @@
 use strict;
 use warnings;
 use Try::Tiny;
+use namespace::clean;
 
-our %_pod_inherit_config = 
+our %_pod_inherit_config =
   (
    class_map => { 'DBIx::Class::Relationship::BelongsTo' => 'DBIx::Class::Relationship' }
   );
@@ -17,7 +18,7 @@
   my ($class, $rel, $f_class, $cond, $attrs) = @_;
 
   # assume a foreign key contraint unless defined otherwise
-  $attrs->{is_foreign_key_constraint} = 1 
+  $attrs->{is_foreign_key_constraint} = 1
     if not exists $attrs->{is_foreign_key_constraint};
   $attrs->{undef_on_null_fk} = 1
     if not exists $attrs->{undef_on_null_fk};

Modified: DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Relationship/HasMany.pm
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Relationship/HasMany.pm	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Relationship/HasMany.pm	2010-05-31 22:18:10 UTC (rev 9496)
@@ -4,8 +4,9 @@
 use strict;
 use warnings;
 use Try::Tiny;
+use namespace::clean;
 
-our %_pod_inherit_config = 
+our %_pod_inherit_config =
   (
    class_map => { 'DBIx::Class::Relationship::HasMany' => 'DBIx::Class::Relationship' }
   );
@@ -15,7 +16,7 @@
 
   unless (ref $cond) {
     $class->ensure_class_loaded($f_class);
-    my ($pri, $too_many) = try { $class->_pri_cols } 
+    my ($pri, $too_many) = try { $class->_pri_cols }
       catch {
         $class->throw_exception("Can't infer join condition for ${rel} on ${class}: $_");
       };

Modified: DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Relationship/HasOne.pm
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Relationship/HasOne.pm	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Relationship/HasOne.pm	2010-05-31 22:18:10 UTC (rev 9496)
@@ -5,8 +5,9 @@
 use warnings;
 use Carp::Clan qw/^DBIx::Class/;
 use Try::Tiny;
+use namespace::clean;
 
-our %_pod_inherit_config = 
+our %_pod_inherit_config =
   (
    class_map => { 'DBIx::Class::Relationship::HasOne' => 'DBIx::Class::Relationship' }
   );

Modified: DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/ResultSource.pm
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/ResultSource.pm	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/ResultSource.pm	2010-05-31 22:18:10 UTC (rev 9496)
@@ -9,6 +9,7 @@
 use DBIx::Class::Exception;
 use Carp::Clan qw/^DBIx::Class/;
 use Try::Tiny;
+use namespace::clean;
 
 use base qw/DBIx::Class/;
 
@@ -143,7 +144,7 @@
 If a column name beginning with a plus sign ('+col1') is provided, the
 attributes provided will be merged with any existing attributes for the
 column, with the new attributes taking precedence in the case that an
-attribute already exists. Using this without a hashref 
+attribute already exists. Using this without a hashref
 (C<< $source->add_columns(qw/+col1 +col2/) >>) is legal, but useless --
 it does the same thing it would do without the plus.
 
@@ -175,7 +176,7 @@
 
 This contains the column type. It is automatically filled if you use the
 L<SQL::Translator::Producer::DBIx::Class::File> producer, or the
-L<DBIx::Class::Schema::Loader> module. 
+L<DBIx::Class::Schema::Loader> module.
 
 Currently there is no standard set of values for the data_type. Use
 whatever your database supports.
@@ -899,7 +900,7 @@
 
   my $schema = $source->schema();
 
-Returns the L<DBIx::Class::Schema> object that this result source 
+Returns the L<DBIx::Class::Schema> object that this result source
 belongs to.
 
 =head2 storage
@@ -1478,7 +1479,7 @@
                     keys %{$rel_info->{cond}};
       my @ord = (ref($rel_info->{attrs}{order_by}) eq 'ARRAY'
                    ? @{$rel_info->{attrs}{order_by}}
-   
+
                 : (defined $rel_info->{attrs}{order_by}
                        ? ($rel_info->{attrs}{order_by})
                        : ()));
@@ -1536,7 +1537,7 @@
 
 =head2 handle
 
-Obtain a new handle to this source. Returns an instance of a 
+Obtain a new handle to this source. Returns an instance of a
 L<DBIx::Class::ResultSourceHandle>.
 
 =cut

Modified: DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Row.pm
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Row.pm	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Row.pm	2010-05-31 22:18:10 UTC (rev 9496)
@@ -8,6 +8,7 @@
 use DBIx::Class::Exception;
 use Scalar::Util ();
 use Try::Tiny;
+use namespace::clean;
 
 ###
 ### Internal method
@@ -405,19 +406,14 @@
       my $reverse = $source->reverse_relationship_info($relname);
       foreach my $obj (@cands) {
         $obj->set_from_related($_, $self) for keys %$reverse;
-        my $them = { %{$obj->{_relationship_data} || {} }, $obj->get_inflated_columns };
         if ($self->__their_pk_needs_us($relname)) {
           if (exists $self->{_ignore_at_insert}{$relname}) {
             MULTICREATE_DEBUG and warn "MC $self skipping post-insert on $relname";
-          } else {
-            MULTICREATE_DEBUG and warn "MC $self re-creating $relname $obj";
-            my $re = $self->result_source
-                          ->related_source($relname)
-                          ->resultset
-                          ->create($them);
-            %{$obj} = %{$re};
-            MULTICREATE_DEBUG and warn "MC $self new $relname $obj";
           }
+          else {
+            MULTICREATE_DEBUG and warn "MC $self inserting $relname $obj";
+            $obj->insert;
+          }
         } else {
           MULTICREATE_DEBUG and warn "MC $self post-inserting $obj";
           $obj->insert();
@@ -1120,7 +1116,7 @@
 
   if ($source->isa('DBIx::Class::ResultSourceHandle')) {
     $source = $source_handle->resolve
-  } 
+  }
   else {
     $source_handle = $source->handle
   }

Modified: DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/SQLAHacks.pm
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/SQLAHacks.pm	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/SQLAHacks.pm	2010-05-31 22:18:10 UTC (rev 9496)
@@ -48,29 +48,25 @@
 
 # !!! THIS IS ALSO HORRIFIC !!! /me ashamed
 #
-# generate inner/outer select lists for various limit dialects
+# Generates inner/outer select lists for various limit dialects
 # which result in one or more subqueries (e.g. RNO, Top, RowNum)
 # Any non-root-table columns need to have their table qualifier
 # turned into a column alias (otherwise names in subqueries clash
 # and/or lose their source table)
 #
-# returns inner/outer strings of SQL QUOTED selectors with aliases
+# Returns inner/outer strings of SQL QUOTED selectors with aliases
 # (to be used in whatever select statement), and an alias index hashref
 # of QUOTED SEL => QUOTED ALIAS pairs (to maybe be used for string-subst
-# higher up)
-#
-# If the $scan_order option is supplied, it signals that the limit dialect
-# needs to order the outer side of the query, which in turn means that the
-# inner select needs to bring out columns used in implicit (non-selected)
-# orders, and the order condition itself needs to be realiased to the proper
-# names in the outer query.
-#
-# In this case ($scan_order os true) we also return a hashref (order doesn't
-# matter) of QUOTED EXTRA-SEL => QUOTED ALIAS pairs, which is a list of extra
-# selectors that do *not* exist in the original select list
+# higher up).
+# If an order_by is supplied, the inner select needs to bring out columns
+# used in implicit (non-selected) orders, and the order condition itself
+# needs to be realiased to the proper names in the outer query. Thus we
+# also return a hashref (order doesn't matter) of QUOTED EXTRA-SEL =>
+# QUOTED ALIAS pairs, which is a list of extra selectors that do *not*
+# exist in the original select list
 
 sub _subqueried_limit_attrs {
-  my ($self, $rs_attrs, $scan_order) = @_;
+  my ($self, $rs_attrs) = @_;
 
   croak 'Limit dialect implementation usable only in the context of DBIC (missing $rs_attrs)'
     unless ref ($rs_attrs) eq 'HASH';
@@ -104,10 +100,12 @@
     $in_sel_index->{$sql_sel}++;
     $in_sel_index->{$self->_quote ($sql_alias)}++ if $sql_alias;
 
-# this *may* turn out to be necessary, not sure yet
-#    my ($sql_unqualified_sel) = $sql_sel =~ / $re_sep (.+) $/x
-#      if ! ref $s;
-#    $in_sel_index->{$sql_unqualified_sel}++;
+    # record unqualified versions too, so we do not have
+    # to reselect the same column twice (in qualified and
+    # unqualified form)
+    if (! ref $s && $sql_sel =~ / $re_sep (.+) $/x) {
+      $in_sel_index->{$1}++;
+    }
   }
 
 
@@ -130,20 +128,20 @@
     }
   }
 
+  # see if the order gives us anything
   my %extra_order_sel;
-  if ($scan_order) {
-    for my $chunk ($self->_order_by_chunks ($rs_attrs->{order_by})) {
-      # order with bind
-      $chunk = $chunk->[0] if (ref $chunk) eq 'ARRAY';
-      $chunk =~ s/\s+ (?: ASC|DESC ) \s* $//ix;
+  for my $chunk ($self->_order_by_chunks ($rs_attrs->{order_by})) {
+    # order with bind
+    $chunk = $chunk->[0] if (ref $chunk) eq 'ARRAY';
+    $chunk =~ s/\s+ (?: ASC|DESC ) \s* $//ix;
 
-      next if $in_sel_index->{$chunk};
+    next if $in_sel_index->{$chunk};
 
-      $extra_order_sel{$chunk} ||= $self->_quote (
-        'ORDER__BY__' . scalar keys %extra_order_sel
-      );
-    }
+    $extra_order_sel{$chunk} ||= $self->_quote (
+      'ORDER__BY__' . scalar keys %extra_order_sel
+    );
   }
+
   return (
     (map { join (', ', @$_ ) } (
       \@in_sel,
@@ -163,9 +161,8 @@
     or croak "Unrecognizable SELECT: $sql";
 
   # get selectors, and scan the order_by (if any)
-  my ($in_sel, $out_sel, $alias_map, $extra_order_sel) = $self->_subqueried_limit_attrs (
-    $rs_attrs, 'scan_order_by',
-  );
+  my ($in_sel, $out_sel, $alias_map, $extra_order_sel)
+    = $self->_subqueried_limit_attrs ( $rs_attrs );
 
   # make up an order if none exists
   my $requested_order = (delete $rs_attrs->{order_by}) || $self->_rno_default_order;
@@ -207,7 +204,7 @@
   SELECT $mid_sel, ROW_NUMBER() OVER( $rno_ord ) AS $idx_name FROM (
     SELECT $in_sel ${sql}${group_having}
   ) $qalias
-) $qalias WHERE $idx_name BETWEEN %d AND %d
+) $qalias WHERE $idx_name BETWEEN %u AND %u
 
 EOS
 
@@ -229,10 +226,10 @@
 
   return sprintf ('SELECT %s%s%s%s',
     $offset
-      ? sprintf ('SKIP %d ', $offset)
+      ? sprintf ('SKIP %u ', $offset)
       : ''
     ,
-    sprintf ('FIRST %d ', $rows),
+    sprintf ('FIRST %u ', $rows),
     $sql,
     $self->_parse_rs_attrs ($rs_attrs),
   );
@@ -246,9 +243,9 @@
     or croak "Unrecognizable SELECT: $sql";
 
   return sprintf ('SELECT %s%s%s%s',
-    sprintf ('FIRST %d ', $rows),
+    sprintf ('FIRST %u ', $rows),
     $offset
-      ? sprintf ('SKIP %d ', $offset)
+      ? sprintf ('SKIP %u ', $offset)
       : ''
     ,
     $sql,
@@ -276,7 +273,7 @@
   SELECT $outsel, ROWNUM $idx_name FROM (
     SELECT $insel ${sql}${order_group_having}
   ) $qalias
-) $qalias WHERE $idx_name BETWEEN %d AND %d
+) $qalias WHERE $idx_name BETWEEN %u AND %u
 
 EOS
 
@@ -294,7 +291,7 @@
 
   # get selectors
   my ($in_sel, $out_sel, $alias_map, $extra_order_sel)
-    = $self->_subqueried_limit_attrs ($rs_attrs, 'outer_order_by');
+    = $self->_subqueried_limit_attrs ($rs_attrs);
 
   my $requested_order = delete $rs_attrs->{order_by};
 
@@ -343,6 +340,12 @@
 
       $mid_sel .= ', ' . $extra_order_sel->{$extra_col};
     }
+
+    # since whatever order bindvals there are, they will be realiased
+    # and need to show up in front of the entire initial inner subquery
+    # Unshift *from_bind* to make this happen (horrible, horrible, but
+    # we don't have another mechanism yet)
+    unshift @{$self->{from_bind}}, @{$self->{order_bind}};
   }
 
   # and this is order re-alias magic
@@ -359,7 +362,7 @@
 
   my $quoted_rs_alias = $self->_quote ($rs_attrs->{alias});
 
-  $sql = sprintf ('SELECT TOP %d %s %s %s %s',
+  $sql = sprintf ('SELECT TOP %u %s %s %s %s',
     $rows + ($offset||0),
     $in_sel,
     $sql,
@@ -367,7 +370,7 @@
     $order_by_inner,
   );
 
-  $sql = sprintf ('SELECT TOP %d %s FROM ( %s ) %s %s',
+  $sql = sprintf ('SELECT TOP %u %s FROM ( %s ) %s %s',
     $rows,
     $mid_sel,
     $sql,
@@ -375,7 +378,7 @@
     $order_by_reversed,
   ) if $offset;
 
-  $sql = sprintf ('SELECT TOP %d %s FROM ( %s ) %s %s',
+  $sql = sprintf ('SELECT TOP %u %s FROM ( %s ) %s %s',
     $rows,
     $out_sel,
     $sql,
@@ -383,10 +386,116 @@
     $order_by_requested,
   ) if ( ($offset && $order_by_requested) || ($mid_sel ne $out_sel) );
 
+  $sql =~ s/\s*\n\s*/ /g;   # easier to read in the debugger
   return $sql;
 }
 
+# This is the most evil limit "dialect" (more of a hack) for *really*
+# stupid databases. It works by ordering the set by some unique column,
+# and calculating amount of rows that have a less-er value (thus
+# emulating a RowNum-like index). Of course this implies the set can
+# only be ordered by a single unique columns.
+sub _GenericSubQ {
+  my ($self, $sql, $rs_attrs, $rows, $offset) = @_;
 
+  my $root_rsrc = $rs_attrs->{_rsroot_source_handle}->resolve;
+  my $root_tbl_name = $root_rsrc->name;
+
+  # mangle the input sql as we will be replacing the selector
+  $sql =~ s/^ \s* SELECT \s+ .+? \s+ (?= \b FROM \b )//ix
+    or croak "Unrecognizable SELECT: $sql";
+
+  my ($order_by, @rest) = do {
+    local $self->{quote_char};
+    $self->_order_by_chunks ($rs_attrs->{order_by})
+  };
+
+  unless (
+    $order_by
+      &&
+    ! @rest
+      &&
+    ( ! ref $order_by
+        ||
+      ( ref $order_by eq 'ARRAY' and @$order_by == 1 )
+    )
+  ) {
+    croak (
+      'Generic Subquery Limit does not work on resultsets without an order, or resultsets '
+    . 'with complex order criteria (multicolumn and/or functions). Provide a single, '
+    . 'unique-column order criteria.'
+    );
+  }
+
+  ($order_by) = @$order_by if ref $order_by;
+
+  $order_by =~ s/\s+ ( ASC|DESC ) \s* $//ix;
+  my $direction = lc ($1 || 'asc');
+
+  my ($unq_sort_col) = $order_by =~ /(?:^|\.)([^\.]+)$/;
+
+  my $inf = $root_rsrc->storage->_resolve_column_info (
+    $rs_attrs->{from}, [$order_by, $unq_sort_col]
+  );
+
+  my $ord_colinfo = $inf->{$order_by} || croak "Unable to determine source of order-criteria '$order_by'";
+
+  if ($ord_colinfo->{-result_source}->name ne $root_tbl_name) {
+    croak "Generic Subquery Limit order criteria can be only based on the root-source '"
+        . $root_rsrc->source_name . "' (aliased as '$rs_attrs->{alias}')";
+  }
+
+  # make sure order column is qualified
+  $order_by = "$rs_attrs->{alias}.$order_by"
+    unless $order_by =~ /^$rs_attrs->{alias}\./;
+
+  my $is_u;
+  my $ucs = { $root_rsrc->unique_constraints };
+  for (values %$ucs ) {
+    if (@$_ == 1 && "$rs_attrs->{alias}.$_->[0]" eq $order_by) {
+      $is_u++;
+      last;
+    }
+  }
+  croak "Generic Subquery Limit order criteria column '$order_by' must be unique (no unique constraint found)"
+    unless $is_u;
+
+  my ($in_sel, $out_sel, $alias_map, $extra_order_sel)
+    = $self->_subqueried_limit_attrs ($rs_attrs);
+
+  my $cmp_op = $direction eq 'desc' ? '>' : '<';
+  my $count_tbl_alias = 'rownum__emulation';
+
+  my $order_group_having = $self->_parse_rs_attrs($rs_attrs);
+
+  # add the order supplement (if any) as this is what will be used for the outer WHERE
+  $in_sel .= ", $_" for keys %{$extra_order_sel||{}};
+
+  $sql = sprintf (<<EOS,
+SELECT $out_sel
+  FROM (
+    SELECT $in_sel ${sql}${order_group_having}
+  ) %s
+WHERE ( SELECT COUNT(*) FROM %s %s WHERE %s $cmp_op %s ) %s
+EOS
+    ( map { $self->_quote ($_) } (
+      $rs_attrs->{alias},
+      $root_tbl_name,
+      $count_tbl_alias,
+      "$count_tbl_alias.$unq_sort_col",
+      $order_by,
+    )),
+    $offset
+      ? sprintf ('BETWEEN %u AND %u', $offset, $offset + $rows - 1)
+      : sprintf ('< %u', $rows )
+    ,
+  );
+
+  $sql =~ s/\s*\n\s*/ /g;   # easier to read in the debugger
+  return $sql;
+}
+
+
 # While we're at it, this should make LIMIT queries more efficient,
 #  without digging into things too deeply
 sub _find_syntax {

Modified: DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Schema/Versioned.pm
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Schema/Versioned.pm	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Schema/Versioned.pm	2010-05-31 22:18:10 UTC (rev 9496)
@@ -183,6 +183,7 @@
 use Carp::Clan qw/^DBIx::Class/;
 use Time::HiRes qw/gettimeofday/;
 use Try::Tiny;
+use namespace::clean;
 
 __PACKAGE__->mk_classdata('_filedata');
 __PACKAGE__->mk_classdata('upgrade_directory');
@@ -226,7 +227,7 @@
 
   # must be called on a fresh database
   if ($self->get_db_version()) {
-    carp 'Install not possible as versions table already exists in database';
+      $self->throw_exception("A versioned schema has already been deployed, try upgrade instead.\n");
   }
 
   # default to current version if none passed
@@ -567,23 +568,23 @@
 {
   my ($self) = @_;
 
-  my $info = $self->storage->connect_info;
-  my $args = $info->[-1];
+  my $conn_info = $self->storage->connect_info;
+  $self->{vschema} = DBIx::Class::Version->connect(@$conn_info);
+  my $conn_attrs = $self->{vschema}->storage->_dbic_connect_attributes || {};
 
-  $self->{vschema} = DBIx::Class::Version->connect(@$info);
   my $vtable = $self->{vschema}->resultset('Table');
 
   # useful when connecting from scripts etc
-  return if ($args->{ignore_version} || ($ENV{DBIC_NO_VERSION_CHECK} && !exists $args->{ignore_version}));
+  return if ($conn_attrs->{ignore_version} || ($ENV{DBIC_NO_VERSION_CHECK} && !exists $conn_attrs->{ignore_version}));
 
   # check for legacy versions table and move to new if exists
-  my $vschema_compat = DBIx::Class::VersionCompat->connect(@$info);
+  my $vschema_compat = DBIx::Class::VersionCompat->connect(@$conn_info);
   unless ($self->_source_exists($vtable)) {
     my $vtable_compat = $vschema_compat->resultset('TableCompat');
     if ($self->_source_exists($vtable_compat)) {
       $self->{vschema}->deploy;
       map { $vtable->create({ installed => $_->Installed, version => $_->Version }) } $vtable_compat->all;
-      $self->storage->dbh->do("DROP TABLE " . $vtable_compat->result_source->from);
+      $self->storage->_get_dbh->do("DROP TABLE " . $vtable_compat->result_source->from);
     }
   }
 
@@ -683,13 +684,13 @@
   # This is necessary since there are legitimate cases when upgrades can happen
   # back to back within the same second. This breaks things since we relay on the
   # ability to sort by the 'installed' value. The logical choice of an autoinc
-  # is not possible, as it will break multiple legacy installations. Also it is 
+  # is not possible, as it will break multiple legacy installations. Also it is
   # not possible to format the string sanely, as the column is a varchar(20).
   # The 'v' character is added to the front of the string, so that any version
   # formatted by this new function will sort _after_ any existing 200... strings.
   my @tm = gettimeofday();
   my @dt = gmtime ($tm[0]);
-  my $o = $vtable->create({ 
+  my $o = $vtable->create({
     version => $version,
     installed => sprintf("v%04d%02d%02d_%02d%02d%02d.%03.0f",
       $dt[5] + 1900,

Modified: DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Schema.pm
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Schema.pm	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Schema.pm	2010-05-31 22:18:10 UTC (rev 9496)
@@ -10,6 +10,7 @@
 use File::Spec;
 use Sub::Name ();
 use Module::Find();
+use namespace::clean;
 
 use base qw/DBIx::Class/;
 
@@ -99,7 +100,7 @@
 If a Result class is found to already have a ResultSet class set using
 L</resultset_class> to some other class, you will be warned like this:
 
-  We found ResultSet class '$rs_class' for '$result', but it seems 
+  We found ResultSet class '$rs_class' for '$result', but it seems
   that you had already set '$result' to use '$rs_set' instead
 
 Both of the sub-namespaces are configurable if you don't like the defaults,
@@ -320,7 +321,7 @@
 If any classes found do not appear to be Result class files, you will
 get the following warning:
 
-   Failed to load $comp_class. Can't find source_name method. Is 
+   Failed to load $comp_class. Can't find source_name method. Is
    $comp_class really a full DBIC result class? Fix it, move it elsewhere,
    or make your load_classes call more specific.
 
@@ -480,11 +481,11 @@
 
 =back
 
-An optional sub which you can declare in your own Schema class that will get 
+An optional sub which you can declare in your own Schema class that will get
 passed the L<SQL::Translator::Schema> object when you deploy the schema via
 L</create_ddl_dir> or L</deploy>.
 
-For an example of what you can do with this, see 
+For an example of what you can do with this, see
 L<DBIx::Class::Manual::Cookbook/Adding Indexes And Functions To Your SQL>.
 
 Note that sqlt_deploy_hook is called by L</deployment_statements>, which in turn
@@ -656,7 +657,7 @@
 
 =head2 txn_scope_guard
 
-Runs C<txn_scope_guard> on the schema's storage. See 
+Runs C<txn_scope_guard> on the schema's storage. See
 L<DBIx::Class::Storage/txn_scope_guard>.
 
 =cut
@@ -742,7 +743,7 @@
 
 Pass this method a resultsource name, and an arrayref of
 arrayrefs. The arrayrefs should contain a list of column names,
-followed by one or many sets of matching data for the given columns. 
+followed by one or many sets of matching data for the given columns.
 
 In void context, C<insert_bulk> in L<DBIx::Class::Storage::DBI> is used
 to insert the data, as this is a fast method. However, insert_bulk currently
@@ -762,16 +763,16 @@
     ...
   ]);
 
-Since wantarray context is basically the same as looping over $rs->create(...) 
+Since wantarray context is basically the same as looping over $rs->create(...)
 you won't see any performance benefits and in this case the method is more for
 convenience. Void context sends the column information directly to storage
-using <DBI>s bulk insert method. So the performance will be much better for 
+using <DBI>s bulk insert method. So the performance will be much better for
 storages that support this method.
 
-Because of this difference in the way void context inserts rows into your 
+Because of this difference in the way void context inserts rows into your
 database you need to note how this will effect any loaded components that
-override or augment insert.  For example if you are using a component such 
-as L<DBIx::Class::UUIDColumns> to populate your primary keys you MUST use 
+override or augment insert.  For example if you are using a component such
+as L<DBIx::Class::UUIDColumns> to populate your primary keys you MUST use
 wantarray context if you want the PKs automatically created.
 
 =cut
@@ -785,7 +786,7 @@
         $rs->populate($data);
     }
   } else {
-      $self->throw_exception("$name is not a resultset"); 
+      $self->throw_exception("$name is not a resultset");
   }
 }
 
@@ -813,7 +814,7 @@
   my ($self, @info) = @_;
   return $self if !@info && $self->storage;
 
-  my ($storage_class, $args) = ref $self->storage_type ? 
+  my ($storage_class, $args) = ref $self->storage_type ?
     ($self->_normalize_storage_type($self->storage_type),{}) : ($self->storage_type, {});
 
   $storage_class = 'DBIx::Class::Storage'.$storage_class
@@ -934,7 +935,7 @@
 
 =head2 svp_begin
 
-Creates a new savepoint (does nothing outside a transaction). 
+Creates a new savepoint (does nothing outside a transaction).
 Equivalent to calling $schema->storage->svp_begin.  See
 L<DBIx::Class::Storage/"svp_begin"> for more information.
 
@@ -951,7 +952,7 @@
 
 =head2 svp_release
 
-Releases a savepoint (does nothing outside a transaction). 
+Releases a savepoint (does nothing outside a transaction).
 Equivalent to calling $schema->storage->svp_release.  See
 L<DBIx::Class::Storage/"svp_release"> for more information.
 
@@ -968,7 +969,7 @@
 
 =head2 svp_rollback
 
-Rollback to a savepoint (does nothing outside a transaction). 
+Rollback to a savepoint (does nothing outside a transaction).
 Equivalent to calling $schema->storage->svp_rollback.  See
 L<DBIx::Class::Storage/"svp_rollback"> for more information.
 
@@ -1052,8 +1053,8 @@
 created. For quoting purposes supply C<quote_table_names> and
 C<quote_field_names>.
 
-Additionally, the DBIx::Class parser accepts a C<sources> parameter as a hash 
-ref or an array ref, containing a list of source to deploy. If present, then 
+Additionally, the DBIx::Class parser accepts a C<sources> parameter as a hash
+ref or an array ref, containing a list of source to deploy. If present, then
 only the sources listed will get deployed. Furthermore, you can use the
 C<add_fk_index> parser parameter to prevent the parser from creating an index for each
 FK.
@@ -1100,7 +1101,7 @@
 
 =back
 
-A convenient shortcut to 
+A convenient shortcut to
 C<< $self->storage->create_ddl_dir($self, @args) >>.
 
 Creates an SQL file based on the Schema, for each of the specified
@@ -1141,7 +1142,7 @@
     my $filename = $table->ddl_filename($type, $dir, $version, $preversion)
 
  In recent versions variables $dir and $version were reversed in order to
- bring the signature in line with other Schema/Storage methods. If you 
+ bring the signature in line with other Schema/Storage methods. If you
  really need to maintain backward compatibility, you can do the following
  in any overriding methods:
 
@@ -1162,7 +1163,7 @@
 
 =head2 thaw
 
-Provided as the recommended way of thawing schema objects. You can call 
+Provided as the recommended way of thawing schema objects. You can call
 C<Storable::thaw> directly if you wish, but the thawed objects will not have a
 reference to any schema, so are rather useless.
 
@@ -1239,7 +1240,7 @@
 
 =back
 
-This method is called by L</load_namespaces> and L</load_classes> to install the found classes into your Schema. You should be using those instead of this one. 
+This method is called by L</load_namespaces> and L</load_classes> to install the found classes into your Schema. You should be using those instead of this one.
 
 You will only need this method if you have your Result classes in
 files which are not named after the packages (or all in the same
@@ -1304,7 +1305,7 @@
 
 =back
 
-As L</register_source> but should be used if the result class already 
+As L</register_source> but should be used if the result class already
 has a source and you want to register an extra one.
 
 =cut
@@ -1349,7 +1350,7 @@
 
 sub _unregister_source {
     my ($self, $moniker) = @_;
-    my %reg = %{$self->source_registrations}; 
+    my %reg = %{$self->source_registrations};
 
     my $source = delete $reg{$moniker};
     $self->source_registrations(\%reg);

Modified: DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/ADO.pm
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/ADO.pm	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/ADO.pm	2010-05-31 22:18:10 UTC (rev 9496)
@@ -3,6 +3,7 @@
 
 use base 'DBIx::Class::Storage::DBI';
 use Try::Tiny;
+use namespace::clean;
 
 sub _rebless {
   my $self = shift;

Modified: DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/Cursor.pm
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/Cursor.pm	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/Cursor.pm	2010-05-31 22:18:10 UTC (rev 9496)
@@ -6,6 +6,7 @@
 use base qw/DBIx::Class::Cursor/;
 
 use Try::Tiny;
+use namespace::clean;
 
 __PACKAGE__->mk_group_accessors('simple' =>
     qw/sth/

Modified: DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/InterBase.pm
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/InterBase.pm	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/InterBase.pm	2010-05-31 22:18:10 UTC (rev 9496)
@@ -6,6 +6,7 @@
 use mro 'c3';
 use List::Util();
 use Try::Tiny;
+use namespace::clean;
 
 =head1 NAME
 
@@ -40,13 +41,13 @@
   }
 
   $self->throw_exception('No sequence to fetch') unless $sequence;
-  
+
   my ($val) = $self->_get_dbh->selectrow_array(
 'SELECT GEN_ID(' . $self->sql_maker->_quote($sequence) .
 ', 1) FROM rdb$database');
 
   return $val;
-} 
+}
 
 sub _dbh_get_autoinc_seq {
   my ($self, $dbh, $source, $col) = @_;

Modified: DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/MSSQL.pm
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/MSSQL.pm	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/MSSQL.pm	2010-05-31 22:18:10 UTC (rev 9496)
@@ -6,6 +6,7 @@
 use base qw/DBIx::Class::Storage::DBI::UniqueIdentifier/;
 use mro 'c3';
 use Try::Tiny;
+use namespace::clean;
 
 use List::Util();
 
@@ -162,7 +163,7 @@
   if (
     $sql !~ /^ \s* SELECT \s+ TOP \s+ \d+ \s+ /xi
       &&
-    scalar $self->_parse_order_by ($attrs->{order_by}) 
+    scalar $self->_parse_order_by ($attrs->{order_by})
   ) {
     $self->throw_exception(
       'An ordered subselect encountered - this is not safe! Please see "Ordered Subselects" in DBIx::Class::Storage::DBI::MSSQL
@@ -197,7 +198,7 @@
 
 sub datetime_parser_type {
   'DBIx::Class::Storage::DBI::MSSQL::DateTime::Format'
-} 
+}
 
 sub sqlt_type { 'SQLServer' }
 
@@ -253,7 +254,7 @@
 package # hide from PAUSE
   DBIx::Class::Storage::DBI::MSSQL::DateTime::Format;
 
-my $datetime_format      = '%Y-%m-%d %H:%M:%S.%3N'; # %F %T 
+my $datetime_format      = '%Y-%m-%d %H:%M:%S.%3N'; # %F %T
 my $smalldatetime_format = '%Y-%m-%d %H:%M:%S';
 
 my ($datetime_parser, $smalldatetime_parser);

Modified: DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/ODBC/Microsoft_SQL_Server.pm
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/ODBC/Microsoft_SQL_Server.pm	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/ODBC/Microsoft_SQL_Server.pm	2010-05-31 22:18:10 UTC (rev 9496)
@@ -8,6 +8,7 @@
 use List::Util();
 use Scalar::Util ();
 use Try::Tiny;
+use namespace::clean;
 
 __PACKAGE__->mk_group_accessors(simple => qw/
   _using_dynamic_cursors

Modified: DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/ODBC.pm
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/ODBC.pm	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/ODBC.pm	2010-05-31 22:18:10 UTC (rev 9496)
@@ -5,6 +5,7 @@
 use base qw/DBIx::Class::Storage::DBI/;
 use mro 'c3';
 use Try::Tiny;
+use namespace::clean;
 
 sub _rebless {
   my ($self) = @_;

Modified: DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/Oracle/Generic.pm
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/Oracle/Generic.pm	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/Oracle/Generic.pm	2010-05-31 22:18:10 UTC (rev 9496)
@@ -5,6 +5,7 @@
 use Scope::Guard ();
 use Context::Preserve ();
 use Try::Tiny;
+use namespace::clean;
 
 =head1 NAME
 
@@ -355,7 +356,7 @@
   my $txn_scope_guard = $self->txn_scope_guard;
 
   $self->_do_query('alter session set constraints = deferred');
-  
+
   my $sg = Scope::Guard->new(sub {
     $self->_do_query('alter session set constraints = immediate');
   });

Modified: DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/Oracle.pm
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/Oracle.pm	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/Oracle.pm	2010-05-31 22:18:10 UTC (rev 9496)
@@ -6,6 +6,7 @@
 use base qw/DBIx::Class::Storage::DBI/;
 use mro 'c3';
 use Try::Tiny;
+use namespace::clean;
 
 sub _rebless {
     my ($self) = @_;

Modified: DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/Replicated/WithDSN.pm
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/Replicated/WithDSN.pm	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/Replicated/WithDSN.pm	2010-05-31 22:18:10 UTC (rev 9496)
@@ -4,8 +4,8 @@
 use Scalar::Util 'reftype';
 requires qw/_query_start/;
 
+use Try::Tiny;
 use namespace::clean -except => 'meta';
-use Try::Tiny;
 
 =head1 NAME
 

Modified: DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/Replicated.pm
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/Replicated.pm	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/Replicated.pm	2010-05-31 22:18:10 UTC (rev 9496)
@@ -17,6 +17,7 @@
 use Hash::Merge;
 use List::Util qw/min max reduce/;
 use Try::Tiny;
+use namespace::clean;
 
 use namespace::clean -except => 'meta';
 
@@ -38,7 +39,7 @@
   $schema->storage_type( ['::DBI::Replicated', {balancer=>'::Random'}] );
   $schema->connection(...);
 
-Next, you need to add in the Replicants.  Basically this is an array of 
+Next, you need to add in the Replicants.  Basically this is an array of
 arrayrefs, where each arrayref is database connect information.  Think of these
 arguments as what you'd pass to the 'normal' $schema->connect method.
 
@@ -59,7 +60,7 @@
   my $RS = $schema->resultset('Source')->search(undef, {force_pool=>'master'});
 
 Now $RS will force everything (both reads and writes) to use whatever was setup
-as the master storage.  'master' is hardcoded to always point to the Master, 
+as the master storage.  'master' is hardcoded to always point to the Master,
 but you can also use any Replicant name.  Please see:
 L<DBIx::Class::Storage::DBI::Replicated::Pool> and the replicants attribute for more.
 
@@ -124,7 +125,7 @@
 
 =head2 pool_type
 
-Contains the classname which will instantiate the L</pool> object.  Defaults 
+Contains the classname which will instantiate the L</pool> object.  Defaults
 to: L<DBIx::Class::Storage::DBI::Replicated::Pool>.
 
 =cut
@@ -206,7 +207,7 @@
 
 =head2 balancer
 
-Is a <DBIx::Class::Storage::DBI::Replicated::Balancer> or derived class.  This 
+Is a <DBIx::Class::Storage::DBI::Replicated::Balancer> or derived class.  This
 is a class that takes a pool (<DBIx::Class::Storage::DBI::Replicated::Pool>)
 
 =cut
@@ -236,7 +237,7 @@
 
 =head1 ATTRIBUTES IMPLEMENTING THE DBIx::Storage::DBI INTERFACE
 
-The following methods are delegated all the methods required for the 
+The following methods are delegated all the methods required for the
 L<DBIx::Class::Storage::DBI> interface.
 
 =head2 read_handler
@@ -253,7 +254,7 @@
     select
     select_single
     columns_info_for
-    _dbh_columns_info_for 
+    _dbh_columns_info_for
     _select
   /],
 );
@@ -467,7 +468,7 @@
 =cut
 
 sub BUILDARGS {
-  my ($class, $schema, $storage_type_args, @args) = @_;  
+  my ($class, $schema, $storage_type_args, @args) = @_;
 
   return {
     schema=>$schema,
@@ -620,7 +621,7 @@
   my $reliably = sub {
     my $name = shift @_;
     $schema->resultset('User')->create({name=>$name});
-    my $user_rs = $schema->resultset('User')->find({name=>$name}); 
+    my $user_rs = $schema->resultset('User')->find({name=>$name});
     return $user_rs;
   };
 
@@ -918,7 +919,7 @@
   my $self = shift;
 
   return max map $_->lag_behind_master, $self->replicants;
-} 
+}
 
 =head2 is_replicating
 
@@ -966,7 +967,7 @@
 
 sub _driver_determined {
   my $self = shift;
-  
+
   if (@_) {
     $_->_driver_determined(@_) for $self->all_storages;
   }
@@ -976,19 +977,19 @@
 
 sub _init {
   my $self = shift;
-  
+
   $_->_init for $self->all_storages;
 }
 
 sub _run_connection_actions {
   my $self = shift;
-  
+
   $_->_run_connection_actions for $self->all_storages;
 }
 
 sub _do_connection_actions {
   my $self = shift;
-  
+
   if (@_) {
     $_->_do_connection_actions(@_) for $self->all_storages;
   }
@@ -1029,7 +1030,7 @@
 
   if (not $self->_server_info_hash) {
     my $min_version_info = (
-      reduce { $a->[0] < $b->[0] ? $a : $b } 
+      reduce { $a->[0] < $b->[0] ? $a : $b }
       map [ $numify_ver->($_->{dbms_version}), $_ ],
       map $_->_server_info, $self->all_storages
     )->[1];

Modified: DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/SQLAnywhere.pm
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/SQLAnywhere.pm	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/SQLAnywhere.pm	2010-05-31 22:18:10 UTC (rev 9496)
@@ -6,6 +6,7 @@
 use mro 'c3';
 use List::Util ();
 use Try::Tiny;
+use namespace::clean;
 
 __PACKAGE__->mk_group_accessors(simple => qw/
   _identity
@@ -43,7 +44,7 @@
   my ($source, $to_insert) = @_;
 
   my $identity_col = List::Util::first {
-      $source->column_info($_)->{is_auto_increment} 
+      $source->column_info($_)->{is_auto_increment}
   } $source->columns;
 
 # user might have an identity PK without is_auto_increment

Modified: DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/Sybase/ASE.pm
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/Sybase/ASE.pm	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/Sybase/ASE.pm	2010-05-31 22:18:10 UTC (rev 9496)
@@ -14,6 +14,7 @@
 use Sub::Name();
 use Data::Dumper::Concise();
 use Try::Tiny;
+use namespace::clean;
 
 __PACKAGE__->mk_group_accessors('simple' =>
     qw/_identity _blob_log_on_update _writer_storage _is_extra_storage

Modified: DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/Sybase/Microsoft_SQL_Server.pm
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/Sybase/Microsoft_SQL_Server.pm	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/Sybase/Microsoft_SQL_Server.pm	2010-05-31 22:18:10 UTC (rev 9496)
@@ -59,7 +59,7 @@
 sub _get_server_version {
   my $self = shift;
 
-  my $product_version = $self->_get_dbh->selectrow_hashref('xp_msver ProductVersion');
+  my $product_version = $self->_get_dbh->selectrow_hashref('master.dbo.xp_msver ProductVersion');
 
   if ((my $version = $product_version->{Character_Value}) =~ /^(\d+)\./) {
     return $version;

Modified: DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/Sybase.pm
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/Sybase.pm	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI/Sybase.pm	2010-05-31 22:18:10 UTC (rev 9496)
@@ -3,6 +3,7 @@
 use strict;
 use warnings;
 use Try::Tiny;
+use namespace::clean;
 
 use base qw/DBIx::Class::Storage::DBI/;
 

Modified: DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI.pm
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI.pm	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/DBI.pm	2010-05-31 22:18:10 UTC (rev 9496)
@@ -17,12 +17,13 @@
 use Sub::Name ();
 use Try::Tiny;
 use File::Path ();
+use namespace::clean;
 
-__PACKAGE__->mk_group_accessors('simple' =>
-  qw/_connect_info _dbi_connect_info _dbh _sql_maker _sql_maker_opts _conn_pid
-     _conn_tid transaction_depth _dbh_autocommit _driver_determined savepoints
-     _server_info_hash/
-);
+__PACKAGE__->mk_group_accessors('simple' => qw/
+  _connect_info _dbi_connect_info _dbic_connect_attributes _driver_determined
+  _dbh _server_info_hash _conn_pid _conn_tid _sql_maker _sql_maker_opts
+  transaction_depth _dbh_autocommit  savepoints
+/);
 
 # the values for these accessors are picked out (and deleted) from
 # the attribute hashref passed to connect_info
@@ -581,6 +582,11 @@
   $self->_dbi_connect_info([@args,
     %attrs && !(ref $args[0] eq 'CODE') ? \%attrs : ()]);
 
+  # FIXME - dirty:
+  # save attributes them in a separate accessor so they are always
+  # introspectable, even in case of a CODE $dbhmaker
+  $self->_dbic_connect_attributes (\%attrs);
+
   return $self->_connect_info;
 }
 
@@ -1465,7 +1471,9 @@
 
   # Can this fail without throwing an exception anyways???
   my $rv = $sth->execute();
-  $self->throw_exception($sth->errstr) if !$rv;
+  $self->throw_exception(
+    $sth->errstr || $sth->err || 'Unknown error: execute() returned false, but error flags were not set...'
+  ) if !$rv;
 
   $self->_query_end( $sql, @$bind );
 
@@ -1680,7 +1688,7 @@
       $sth->finish
     }
     catch {
-      $err = shift unless defined $err 
+      $err = shift unless defined $err
     };
   };
 
@@ -1922,19 +1930,13 @@
   }
 
   # adjust limits
-  if (
-    $attrs->{software_limit}
-      ||
-    $sql_maker->_default_limit_syntax eq "GenericSubQ"
-  ) {
-    $attrs->{software_limit} = 1;
+  if (defined $attrs->{rows}) {
+    $self->throw_exception("rows attribute must be positive if present")
+      unless $attrs->{rows} > 0;
   }
-  else {
-    $self->throw_exception("rows attribute must be positive if present")
-      if (defined($attrs->{rows}) && !($attrs->{rows} > 0));
-
+  elsif (defined $attrs->{offset}) {
     # MySQL actually recommends this approach.  I cringe.
-    $attrs->{rows} = 2**48 if not defined $attrs->{rows} and defined $attrs->{offset};
+    $attrs->{rows} = 2**32;
   }
 
   my @limit;

Modified: DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/TxnScopeGuard.pm
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/TxnScopeGuard.pm	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage/TxnScopeGuard.pm	2010-05-31 22:18:10 UTC (rev 9496)
@@ -4,6 +4,7 @@
 use warnings;
 use Carp::Clan qw/^DBIx::Class/;
 use Try::Tiny;
+use namespace::clean;
 
 sub new {
   my ($class, $storage) = @_;
@@ -78,7 +79,7 @@
 =head1 DESCRIPTION
 
 An object that behaves much like L<Scope::Guard>, but hardcoded to do the
-right thing with transactions in DBIx::Class. 
+right thing with transactions in DBIx::Class.
 
 =head1 METHODS
 

Modified: DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage.pm
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage.pm	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/lib/DBIx/Class/Storage.pm	2010-05-31 22:18:10 UTC (rev 9496)
@@ -11,6 +11,7 @@
 use IO::File;
 use DBIx::Class::Storage::TxnScopeGuard;
 use Try::Tiny;
+use namespace::clean;
 
 __PACKAGE__->mk_group_accessors('simple' => qw/debug debugobj schema/);
 __PACKAGE__->mk_group_accessors('inherited' => 'cursor_class');
@@ -479,8 +480,8 @@
 written to the file C</path/name>.
 
 This environment variable is checked when the storage object is first
-created (when you call connect on your schema).  So, run-time changes 
-to this environment variable will not take effect unless you also 
+created (when you call connect on your schema).  So, run-time changes
+to this environment variable will not take effect unless you also
 re-connect on your schema.
 
 =head2 DBIX_CLASS_STORAGE_DBI_DEBUG

Modified: DBIx-Class/0.08/branches/rs_UD_cleanup/lib/SQL/Translator/Parser/DBIx/Class.pm
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/lib/SQL/Translator/Parser/DBIx/Class.pm	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/lib/SQL/Translator/Parser/DBIx/Class.pm	2010-05-31 22:18:10 UTC (rev 9496)
@@ -17,6 +17,7 @@
 use Carp::Clan qw/^SQL::Translator|^DBIx::Class|^Try::Tiny/;
 use Scalar::Util ();
 use Try::Tiny;
+use namespace::clean;
 
 use base qw(Exporter);
 
@@ -64,7 +65,7 @@
         $dbicschema->throw_exception ("'sources' parameter must be an array or hash ref")
           unless( $ref eq 'ARRAY' || ref eq 'HASH' );
 
-        # limit monikers to those specified in 
+        # limit monikers to those specified in
         my $sources;
         if ($ref eq 'ARRAY') {
             $sources->{$_} = 1 for (@$limit_sources);
@@ -170,7 +171,7 @@
             # Force the order of @cond to match the order of ->add_columns
             my $idx;
             my %other_columns_idx = map {'foreign.'.$_ => ++$idx } $relsource->columns;
-            my @cond = sort { $other_columns_idx{$a} cmp $other_columns_idx{$b} } keys(%{$rel_info->{cond}}); 
+            my @cond = sort { $other_columns_idx{$a} cmp $other_columns_idx{$b} } keys(%{$rel_info->{cond}});
 
             # Get the key information, mapping off the foreign/self markers
             my @refkeys = map {/^\w+\.(\w+)$/} @cond;

Modified: DBIx-Class/0.08/branches/rs_UD_cleanup/script/dbicadmin
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/script/dbicadmin	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/script/dbicadmin	2010-05-31 22:18:10 UTC (rev 9496)
@@ -39,7 +39,7 @@
       ['deploy' => 'Deploy the schema to the database',],
       ['select'   => 'Select data from the schema', ],
       ['insert'   => 'Insert data into the schema', ],
-      ['update'   => 'Update data in the schema', ], 
+      ['update'   => 'Update data in the schema', ],
       ['delete'   => 'Delete data from the schema',],
       ['op:s' => 'compatiblity option all of the above can be suppied as --op=<action>'],
       ['help' => 'display this help', { implies => { schema_class => '__dummy__' } } ],
@@ -62,6 +62,7 @@
     ['force' => 'Be forceful with some operations'],
     ['trace' => 'Turn on DBIx::Class trace output'],
     ['quiet' => 'Be less verbose'],
+    ['I:s@' => 'Same as perl\'s -I, prepended to current @INC'],
   )
 );
 
@@ -86,6 +87,11 @@
     );
 }
 
+# FIXME - lowercasing will eventually go away when Getopt::Long::Descriptive is fixed
+if($opts->{i}) {
+    $opts->{include_dirs} = delete $opts->{i};
+}
+
 if($opts->{help}) {
     $usage->die();
 }
@@ -94,15 +100,13 @@
 if($opts->{connect}) {
   $opts->{connect_info} = delete $opts->{connect};
 }
-
 my $admin = DBIx::Class::Admin->new( %$opts );
 
-
 my $action = $opts->{action};
 
 $action = $opts->{op} if ($action eq 'op');
 
-print "Performig action $action...\n";
+print "Performing action $action...\n";
 
 my $res = $admin->$action();
 if ($action eq 'select') {


Property changes on: DBIx-Class/0.08/branches/rs_UD_cleanup/t
___________________________________________________________________
Deleted: svn:ignore
   - var


Modified: DBIx-Class/0.08/branches/rs_UD_cleanup/t/746mssql.t
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/t/746mssql.t	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/t/746mssql.t	2010-05-31 22:18:10 UTC (rev 9496)
@@ -301,6 +301,7 @@
       is ($limited_rs->count_rs->next, 6, "$test_type: Correct count_rs of limited right-sorted joined resultset");
 
       my $queries;
+      my $orig_debug = $schema->storage->debug;
       $schema->storage->debugcb(sub { $queries++; });
       $schema->storage->debug(1);
 
@@ -312,7 +313,7 @@
       is ($queries, 1, "$test_type: Only one query with prefetch");
 
       $schema->storage->debugcb(undef);
-      $schema->storage->debug(0);
+      $schema->storage->debug($orig_debug);
 
       is_deeply (
         [map { $_->name } ($limited_rs->search_related ('owner')->all) ],
@@ -338,7 +339,10 @@
     my ($sql, @bind) = @${$owners->page(3)->as_query};
     is_deeply (
       \@bind,
-      [ ([ 'me.name' => 'somebogusstring' ], [ test => 'xxx' ]) x 2 ],  # double because of the prefetch subq
+      [
+        $dialect eq 'Top' ? [ test => 'xxx' ] : (),                 # the extra re-order bind
+        ([ 'me.name' => 'somebogusstring' ], [ test => 'xxx' ]) x 2 # double because of the prefetch subq
+      ],
     );
 
     is ($owners->page(1)->all, 3, "$test_type: has_many prefetch returns correct number of rows");

Modified: DBIx-Class/0.08/branches/rs_UD_cleanup/t/74mssql.t
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/t/74mssql.t	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/t/74mssql.t	2010-05-31 22:18:10 UTC (rev 9496)
@@ -52,13 +52,17 @@
 
   isa_ok($schema->storage, "DBIx::Class::Storage::$storage_type");
 
-# start disconnected to test _ping
-  $schema->storage->_dbh->disconnect;
+  SKIP: {
+    skip 'This version of DBD::Sybase segfaults on disconnect', 1 if DBD::Sybase->VERSION < 1.08;
 
-  lives_ok {
-    $schema->storage->dbh_do(sub { $_[1]->do('select 1') })
-  } '_ping works';
+    # start disconnected to test _ping
+    $schema->storage->_dbh->disconnect;
 
+    lives_ok {
+      $schema->storage->dbh_do(sub { $_[1]->do('select 1') })
+    } '_ping works';
+  }
+
   my $dbh = $schema->storage->dbh;
 
   $dbh->do("IF OBJECT_ID('artist', 'U') IS NOT NULL
@@ -177,25 +181,17 @@
   SKIP: {
     my $storage = $schema->storage;
     my $version = $storage->_server_info->{normalized_dbms_version};
-    
-    skip 1, 'could not detect SQL Server version' if not defined $version;
 
+    skip 'could not detect SQL Server version', 1 if not defined $version;
+
     my $have_rno = $version >= 9 ? 1 : 0;
 
-    # Delete version information to force RNO check when rebuilding SQLA
-    # instance.
-    no strict 'refs';
-    no warnings 'redefine';
-    local *{(ref $storage).'::_get_server_version'} = sub { undef };
-
-    my $server_info = { %{ $storage->_server_info_hash } }; # clone
-
-    delete @$server_info{qw/dbms_version normalized_dbms_version/};
-
-    local $storage->{_server_info_hash} = $server_info;
     local $storage->{_sql_maker}        = undef;
     local $storage->{_sql_maker_opts}   = undef;
 
+    local $storage->{_server_info_hash} = { %{ $storage->_server_info_hash } }; # clone
+    delete @{$storage->{_server_info_hash}}{qw/dbms_version normalized_dbms_version/};
+
     $storage->sql_maker;
 
     my $rno_detected =

Modified: DBIx-Class/0.08/branches/rs_UD_cleanup/t/admin/02ddl.t
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/t/admin/02ddl.t	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/t/admin/02ddl.t	2010-05-31 22:18:10 UTC (rev 9496)
@@ -28,6 +28,7 @@
   no_populate=>1,
   sqlite_use_file  => 1,
 );
+
 { # create the schema
 
 #  make sure we are  clean
@@ -37,26 +38,24 @@
 my $admin = DBIx::Class::Admin->new(
   schema_class=> "DBICTest::Schema",
   sql_dir=> $sql_dir,
-  connect_info => \@connect_info, 
+  connect_info => \@connect_info,
 );
 isa_ok ($admin, 'DBIx::Class::Admin', 'create the admin object');
 lives_ok { $admin->create('MySQL'); } 'Can create MySQL sql';
 lives_ok { $admin->create('SQLite'); } 'Can Create SQLite sql';
+lives_ok {
+  $SIG{__WARN__} = sub { warn @_ unless $_[0] =~ /no such table.+DROP TABLE/s };
+  $admin->deploy()
+} 'Can Deploy schema';
 }
 
 { # upgrade schema
 
-#my $schema = DBICTest->init_schema(
-#  no_deploy    => 1,
-#  no_populat    => 1,
-#  sqlite_use_file  => 1,
-#);
-
 clean_dir($sql_dir);
 require DBICVersion_v1;
 
 my $admin = DBIx::Class::Admin->new(
-  schema_class => 'DBICVersion::Schema', 
+  schema_class => 'DBICVersion::Schema',
   sql_dir =>  $sql_dir,
   connect_info => \@connect_info,
 );
@@ -73,9 +72,10 @@
 
 
 require DBICVersion_v2;
+DBICVersion::Schema->upgrade_directory (undef);  # so that we can test use of $sql_dir
 
 $admin = DBIx::Class::Admin->new(
-  schema_class => 'DBICVersion::Schema', 
+  schema_class => 'DBICVersion::Schema',
   sql_dir =>  $sql_dir,
   connect_info => \@connect_info
 );
@@ -84,6 +84,7 @@
 {
   local $SIG{__WARN__} = sub { warn $_[0] unless $_[0] =~ /DB version .+? is lower than the schema version/ };
   lives_ok {$admin->upgrade();} 'upgrade the schema';
+  dies_ok {$admin->deploy} 'cannot deploy installed schema, should upgrade instead';
 }
 
 is($schema->get_db_version, $DBICVersion::Schema::VERSION, 'Schema and db versions match');
@@ -95,7 +96,7 @@
 clean_dir($sql_dir);
 
 my $admin = DBIx::Class::Admin->new(
-  schema_class  => 'DBICVersion::Schema', 
+  schema_class  => 'DBICVersion::Schema',
   sql_dir      => $sql_dir,
   _confirm    => 1,
   connect_info  => \@connect_info,
@@ -122,7 +123,7 @@
   }
   foreach my $file ($dir->children) {
     # skip any hidden files
-    next if ($file =~ /^\./); 
+    next if ($file =~ /^\./);
     unlink $file;
   }
 }

Added: DBIx-Class/0.08/branches/rs_UD_cleanup/t/admin/04include.t
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/t/admin/04include.t	                        (rev 0)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/t/admin/04include.t	2010-05-31 22:18:10 UTC (rev 9496)
@@ -0,0 +1,27 @@
+use strict;
+use warnings;
+
+use Test::More;
+use Test::Exception;
+
+BEGIN {
+    require DBIx::Class;
+    plan skip_all => 'Test needs ' . DBIx::Class::Optional::Dependencies->req_missing_for('admin')
+      unless DBIx::Class::Optional::Dependencies->req_ok_for('admin');
+}
+
+if(use_ok 'DBIx::Class::Admin') {
+  my $admin = DBIx::Class::Admin->new(
+      include_dirs => ['t/lib/testinclude'],
+      schema_class => 'DBICTestAdminInc',
+      config => { DBICTestAdminInc => {} },
+      config_stanza => 'DBICTestAdminInc'
+  );
+  lives_ok { $admin->_build_schema } 'should survive attempt to load module located in include_dirs';
+  {
+    no warnings 'once';
+    ok($DBICTestAdminInc::loaded);
+  }
+}
+
+done_testing;

Modified: DBIx-Class/0.08/branches/rs_UD_cleanup/t/admin/10script.t
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/t/admin/10script.t	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/t/admin/10script.t	2010-05-31 22:18:10 UTC (rev 9496)
@@ -17,9 +17,13 @@
 
 my @json_backends = qw/XS JSON DWIW/;
 my $tests_per_run = 5;
+plan tests => ($tests_per_run * @json_backends) + 1;
 
-plan tests => $tests_per_run * @json_backends;
 
+# test the script is setting @INC properly
+test_exec (qw| -It/lib/testinclude --schema=DBICTestAdminInc --op=deploy --connect=[] |);
+cmp_ok ( $? >> 8, '==', 70, 'Correct exit code from deploying a custom INC schema' );
+
 for my $js (@json_backends) {
 
     eval {JSON::Any->import ($js) };
@@ -37,22 +41,22 @@
 
     my $employees = $schema->resultset('Employee');
 
-    system( _prepare_system_args( qw|--op=insert --set={"name":"Matt"}| ) );
+    test_exec( default_args(), qw|--op=insert --set={"name":"Matt"}| );
     ok( ($employees->count()==1), "$ENV{JSON_ANY_ORDER}: insert count" );
 
     my $employee = $employees->find(1);
     ok( ($employee->name() eq 'Matt'), "$ENV{JSON_ANY_ORDER}: insert valid" );
 
-    system( _prepare_system_args( qw|--op=update --set={"name":"Trout"}| ) );
+    test_exec( default_args(), qw|--op=update --set={"name":"Trout"}| );
     $employee = $employees->find(1);
     ok( ($employee->name() eq 'Trout'), "$ENV{JSON_ANY_ORDER}: update" );
 
-    system( _prepare_system_args( qw|--op=insert --set={"name":"Aran"}| ) );
+    test_exec( default_args(), qw|--op=insert --set={"name":"Aran"}| );
 
     SKIP: {
         skip ("MSWin32 doesn't support -| either", 1) if $^O eq 'MSWin32';
 
-        open(my $fh, "-|",  _prepare_system_args( qw|--op=select --attrs={"order_by":"name"}| ) ) or die $!;
+        open(my $fh, "-|",  ( 'script/dbicadmin', default_args(), qw|--op=select --attrs={"order_by":"name"}| ) ) or die $!;
         my $data = do { local $/; <$fh> };
         close($fh);
         if (!ok( ($data=~/Aran.*Trout/s), "$ENV{JSON_ANY_ORDER}: select with attrs" )) {
@@ -60,32 +64,35 @@
         };
     }
 
-    system( _prepare_system_args( qw|--op=delete --where={"name":"Trout"}| ) );
+    test_exec( default_args(), qw|--op=delete --where={"name":"Trout"}| );
     ok( ($employees->count()==1), "$ENV{JSON_ANY_ORDER}: delete" );
 }
 
+sub default_args {
+  return (
+    qw|--quiet --schema=DBICTest::Schema --class=Employee|,
+    q|--connect=["dbi:SQLite:dbname=t/var/DBIxClass.db","","",{"AutoCommit":1}]|,
+    qw|--force -I testincludenoniterference|,
+  );
+}
+
 # Why do we need this crap? Apparently MSWin32 can not pass through quotes properly
 # (sometimes it will and sometimes not, depending on what compiler was used to build
 # perl). So we go the extra mile to escape all the quotes. We can't also use ' instead
 # of ", because JSON::XS (proudly) does not support "malformed JSON" as the author
 # calls it. Bleh.
 #
-sub _prepare_system_args {
-    my $perl = $^X;
+sub test_exec {
+  my $perl = $^X;
 
-    my @args = (
-        qw|script/dbicadmin --quiet --schema=DBICTest::Schema --class=Employee|,
-        q|--connect=["dbi:SQLite:dbname=t/var/DBIxClass.db","","",{"AutoCommit":1}]|,
-        qw|--force|,
-        @_,
-    );
+  my @args = ('script/dbicadmin', @_);
 
-    if ( $^O eq 'MSWin32' ) {
-        $perl = qq|"$perl"|;    # execution will fail if $^X contains paths
-        for (@args) {
-            $_ =~ s/"/\\"/g;
-        }
+  if ( $^O eq 'MSWin32' ) {
+    $perl = qq|"$perl"|;    # execution will fail if $^X contains paths
+    for (@args) {
+      $_ =~ s/"/\\"/g;
     }
+  }
 
-    return ($perl, @args);
+  system ($perl, @args);
 }

Modified: DBIx-Class/0.08/branches/rs_UD_cleanup/t/bind/order_by.t
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/t/bind/order_by.t	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/t/bind/order_by.t	2010-05-31 22:18:10 UTC (rev 9496)
@@ -3,6 +3,7 @@
 
 use Test::More;
 use Test::Exception;
+use Data::Dumper::Concise;
 use lib qw(t/lib);
 use DBICTest;
 use DBIC::SqlMakerTest;
@@ -25,7 +26,7 @@
             {
                 order_by => $args->{order_by},
                 having =>
-                  [ { read_count => { '>' => 5 } }, \[ 'read_count < ?', 8 ] ]
+                  [ { read_count => { '>' => 5 } }, \[ 'read_count < ?', [ read_count => 8  ] ] ]
             }
           )->as_query,
         "(
@@ -38,14 +39,13 @@
         [
             [qw(foo bar)],
             [qw(read_count 5)],
-            8,
+            [qw(read_count 8)],
             $args->{bind}
               ? @{ $args->{bind} }
               : ()
         ],
-      );
+      ) || diag Dumper $args->{order_by};
     };
-    fail('Fail the unfinished is_same_sql_bind') if $@;
   }
 }
 
@@ -61,46 +61,42 @@
         bind      => [],
     },
     {
-        order_by  => { -desc => \[ 'colA LIKE ?', 'test' ] },
+        order_by  => { -desc => \[ 'colA LIKE ?', [ colA => 'test' ] ] },
         order_req => 'colA LIKE ? DESC',
-        bind      => [qw(test)],
+        bind      => [ [ colA => 'test' ] ],
     },
     {
-        order_by  => \[ 'colA LIKE ? DESC', 'test' ],
+        order_by  => \[ 'colA LIKE ? DESC', [ colA => 'test' ] ],
         order_req => 'colA LIKE ? DESC',
-        bind      => [qw(test)],
+        bind      => [ [ colA => 'test' ] ],
     },
     {
         order_by => [
             { -asc  => \['colA'] },
-            { -desc => \[ 'colB LIKE ?', 'test' ] },
-            { -asc  => \[ 'colC LIKE ?', 'tost' ] }
+            { -desc => \[ 'colB LIKE ?', [ colB => 'test' ] ] },
+            { -asc  => \[ 'colC LIKE ?', [ colC => 'tost' ] ] },
         ],
         order_req => 'colA ASC, colB LIKE ? DESC, colC LIKE ? ASC',
-        bind      => [qw(test tost)],
+        bind      => [ [ colB => 'test' ], [ colC => 'tost' ] ],
     },
-
-    # (mo) this would be really really nice!
-    # (ribasushi) I don't think so, not writing it - patches welcome
     {
+        todo => 1,
         order_by => [
             { -asc  => 'colA' },
             { -desc => { colB => { 'LIKE' => 'test' } } },
             { -asc  => { colC => { 'LIKE' => 'tost' } } }
         ],
         order_req => 'colA ASC, colB LIKE ? DESC, colC LIKE ? ASC',
-        bind      => [ [ colB => 'test' ], [ colC => 'tost' ] ],      # ???
-        todo => 1,
+        bind      => [ [ colB => 'test' ], [ colC => 'tost' ] ],
     },
     {
+        todo => 1,
         order_by  => { -desc => { colA  => { LIKE  => 'test' } } },
         order_req => 'colA LIKE ? DESC',
-        bind      => [qw(test)],
-        todo => 1,
+        bind      => [ [ colA => 'test' ] ],
     },
 );
 
-plan( tests => scalar @tests * 2 );
-
 test_order($_) for @tests;
 
+done_testing;

Modified: DBIx-Class/0.08/branches/rs_UD_cleanup/t/inflate/datetime_mssql.t
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/t/inflate/datetime_mssql.t	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/t/inflate/datetime_mssql.t	2010-05-31 22:18:10 UTC (rev 9496)
@@ -1,5 +1,5 @@
 use strict;
-use warnings;  
+use warnings;
 
 use Test::More;
 use Test::Exception;
@@ -36,6 +36,7 @@
 
 my $schema;
 
+SKIP:
 for my $connect_info (@connect_info) {
   my ($dsn, $user, $pass) = @$connect_info;
 
@@ -45,6 +46,15 @@
     on_connect_call => 'datetime_setup'
   });
 
+  {
+    my $w;
+    local $SIG{__WARN__} = sub { $w = shift };
+    $schema->storage->ensure_connected;
+    if ($w =~ /Your DBD::Sybase is too old to support DBIx::Class::InflateColumn::DateTime/) {
+      skip "Skipping tests on old DBD::Sybase " . DBD::Sybase->VERSION, 1;
+    }
+  }
+
   my $guard = Scope::Guard->new(\&cleanup);
 
 # coltype, column, datehash

Modified: DBIx-Class/0.08/branches/rs_UD_cleanup/t/lib/DBICTest/Schema/BooksInLibrary.pm
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/t/lib/DBICTest/Schema/BooksInLibrary.pm	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/t/lib/DBICTest/Schema/BooksInLibrary.pm	2010-05-31 22:18:10 UTC (rev 9496)
@@ -27,6 +27,8 @@
 );
 __PACKAGE__->set_primary_key('id');
 
+__PACKAGE__->add_unique_constraint (['title']);
+
 __PACKAGE__->resultset_attributes({where => { source => "Library" } });
 
 __PACKAGE__->belongs_to ( owner => 'DBICTest::Schema::Owners', 'owner' );

Modified: DBIx-Class/0.08/branches/rs_UD_cleanup/t/lib/DBICVersion_v1.pm
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/t/lib/DBICVersion_v1.pm	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/t/lib/DBICVersion_v1.pm	2010-05-31 22:18:10 UTC (rev 9496)
@@ -36,12 +36,8 @@
 
 __PACKAGE__->register_class('Table', 'DBICVersion::Table');
 __PACKAGE__->load_components('+DBIx::Class::Schema::Versioned');
+__PACKAGE__->upgrade_directory('t/var/');
 
-sub upgrade_directory
-{
-    return 't/var/';
-}
-
 sub ordered_schema_versions {
   return('1.0','2.0','3.0');
 }

Modified: DBIx-Class/0.08/branches/rs_UD_cleanup/t/lib/DBICVersion_v2.pm
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/t/lib/DBICVersion_v2.pm	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/t/lib/DBICVersion_v2.pm	2010-05-31 22:18:10 UTC (rev 9496)
@@ -47,9 +47,4 @@
 __PACKAGE__->upgrade_directory('t/var/');
 __PACKAGE__->backup_directory('t/var/backup/');
 
-#sub upgrade_directory
-#{
-#    return 't/var/';
-#}
-
 1;

Added: DBIx-Class/0.08/branches/rs_UD_cleanup/t/lib/testinclude/DBICTestAdminInc.pm
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/t/lib/testinclude/DBICTestAdminInc.pm	                        (rev 0)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/t/lib/testinclude/DBICTestAdminInc.pm	2010-05-31 22:18:10 UTC (rev 9496)
@@ -0,0 +1,9 @@
+package DBICTestAdminInc;
+use base 'DBIx::Class::Schema';
+
+our $loaded = 1;
+sub connect { bless {}, __PACKAGE__ }
+
+sub deploy { exit 70 }  # this is what the test will expect to see
+
+1;

Modified: DBIx-Class/0.08/branches/rs_UD_cleanup/t/search/subquery.t
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/t/search/subquery.t	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/t/search/subquery.t	2010-05-31 22:18:10 UTC (rev 9496)
@@ -16,12 +16,12 @@
 my @tests = (
   {
     rs => $cdrs,
-    search => \[ "title = ? AND year LIKE ?", 'buahaha', '20%' ],
+    search => \[ "title = ? AND year LIKE ?", [ title => 'buahaha' ], [ year => '20%' ] ],
     attrs => { rows => 5 },
     sqlbind => \[
       "( SELECT me.cdid, me.artist, me.title, me.year, me.genreid, me.single_track FROM cd me WHERE (title = ? AND year LIKE ?) LIMIT 5)",
-      'buahaha',
-      '20%',
+      [ title => 'buahaha' ],
+      [ year => '20%' ],
     ],
   },
 
@@ -157,8 +157,6 @@
 );
 
 
-plan tests => @tests * 2;
-
 for my $i (0 .. $#tests) {
   my $t = $tests[$i];
   for my $p (1, 2) {  # repeat everything twice, make sure we do not clobber search arguments
@@ -169,3 +167,5 @@
     );
   }
 }
+
+done_testing;

Added: DBIx-Class/0.08/branches/rs_UD_cleanup/t/sqlahacks/limit_dialects/generic_subq.t
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/t/sqlahacks/limit_dialects/generic_subq.t	                        (rev 0)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/t/sqlahacks/limit_dialects/generic_subq.t	2010-05-31 22:18:10 UTC (rev 9496)
@@ -0,0 +1,125 @@
+use strict;
+use warnings;
+
+use Test::More;
+use lib qw(t/lib);
+use DBICTest;
+use DBIC::SqlMakerTest;
+
+my $schema = DBICTest->init_schema;
+
+$schema->storage->_sql_maker->limit_dialect ('GenericSubQ');
+
+my $rs = $schema->resultset ('BooksInLibrary')->search ({}, {
+  '+columns' => [{ owner_name => 'owner.name' }],
+  join => 'owner',
+  rows => 2,
+  order_by => 'me.title',
+});
+
+is_same_sql_bind(
+  $rs->as_query,
+  '(
+    SELECT  id, source, owner, title, price,
+            owner_name
+      FROM (
+        SELECT  me.id, me.source, me.owner, me.title, me.price,
+                owner.name AS owner_name
+          FROM books me
+          JOIN owners owner ON owner.id = me.owner
+        WHERE ( source = ? )
+        ORDER BY me.title
+      ) me
+    WHERE
+      (
+        SELECT COUNT(*)
+          FROM books rownum__emulation
+        WHERE rownum__emulation.title < me.title
+      ) < 2
+  )',
+  [  [ 'source', 'Library' ] ],
+);
+
+is_deeply (
+  [ $rs->get_column ('title')->all ],
+  ['Best Recipe Cookbook', 'Dynamical Systems'],
+  'Correct columns selected with rows',
+);
+
+$schema->storage->_sql_maker->quote_char ('"');
+$schema->storage->_sql_maker->name_sep ('.');
+
+$rs = $schema->resultset ('BooksInLibrary')->search ({}, {
+  order_by => { -desc => 'title' },
+  '+select' => ['owner.name'],
+  '+as' => ['owner.name'],
+  join => 'owner',
+  rows => 3,
+  offset => 1,
+});
+
+is_same_sql_bind(
+  $rs->as_query,
+  '(
+    SELECT  "id", "source", "owner", "title", "price",
+            "owner__name"
+      FROM (
+        SELECT  "me"."id", "me"."source", "me"."owner", "me"."title", "me"."price",
+                "owner"."name" AS "owner__name"
+          FROM "books" "me"
+          JOIN "owners" "owner" ON "owner"."id" = "me"."owner"
+        WHERE ( "source" = ? )
+        ORDER BY "title" DESC
+      ) "me"
+    WHERE
+      (
+        SELECT COUNT(*)
+          FROM "books" "rownum__emulation"
+        WHERE "rownum__emulation"."title" > "me"."title"
+      ) BETWEEN 1 AND 3
+  )',
+  [ [ 'source', 'Library' ] ],
+);
+
+is_deeply (
+  [ $rs->get_column ('title')->all ],
+  [ 'Dynamical Systems', 'Best Recipe Cookbook' ],
+  'Correct columns selected with rows',
+);
+
+$rs = $schema->resultset ('BooksInLibrary')->search ({}, {
+  order_by => 'title',
+  'select' => ['owner.name'],
+  'as' => ['owner_name'],
+  join => 'owner',
+  offset => 1,
+});
+
+is_same_sql_bind(
+  $rs->as_query,
+  '(
+    SELECT "owner_name"
+      FROM (
+        SELECT "owner"."name" AS "owner_name", "title"
+          FROM "books" "me"
+          JOIN "owners" "owner" ON "owner"."id" = "me"."owner"
+        WHERE ( "source" = ? )
+        ORDER BY "title"
+      ) "me"
+    WHERE
+      (
+        SELECT COUNT(*)
+          FROM "books" "rownum__emulation"
+        WHERE "rownum__emulation"."title" < "me"."title"
+      ) BETWEEN 1 AND 4294967295
+  )',
+  [ [ 'source', 'Library' ] ],
+);
+
+is_deeply (
+  [ $rs->get_column ('owner_name')->all ],
+  [ ('Newton') x 2 ],
+  'Correct columns selected with rows',
+);
+
+done_testing;

Modified: DBIx-Class/0.08/branches/rs_UD_cleanup/t/sqlahacks/limit_dialects/toplimit.t
===================================================================
--- DBIx-Class/0.08/branches/rs_UD_cleanup/t/sqlahacks/limit_dialects/toplimit.t	2010-05-31 22:13:45 UTC (rev 9495)
+++ DBIx-Class/0.08/branches/rs_UD_cleanup/t/sqlahacks/limit_dialects/toplimit.t	2010-05-31 22:18:10 UTC (rev 9496)
@@ -153,19 +153,19 @@
         SELECT TOP 2 id, source, owner, title, price
           FROM (
             SELECT TOP 2
-                id, source, owner, title, price, ORDER__BY__1
+                id, source, owner, title, price
               FROM (
                 SELECT TOP 5
-                    me.id, me.source, me.owner, me.title, me.price, title AS ORDER__BY__1
+                    me.id, me.source, me.owner, me.title, me.price
                   FROM books me
                   JOIN owners owner ON owner.id = me.owner
                 WHERE ( source = ? )
                 GROUP BY title
                 ORDER BY title
               ) me
-            ORDER BY ORDER__BY__1 DESC
+            ORDER BY title DESC
           ) me
-        ORDER BY ORDER__BY__1
+        ORDER BY title
       ) me
       JOIN owners owner ON owner.id = me.owner
     WHERE ( source = ? )


Property changes on: DBIx-Class/0.08/branches/rs_UD_cleanup/t/var
___________________________________________________________________
Added: svn:ignore
   + *





More information about the Bast-commits mailing list