[Bast-commits] r7739 - in DBIx-Class/0.08/branches/void_populate_resultset_cond: . lib/DBIx/Class t

norbi at dev.catalyst.perl.org norbi at dev.catalyst.perl.org
Mon Sep 28 20:07:42 GMT 2009


Author: norbi
Date: 2009-09-28 20:07:41 +0000 (Mon, 28 Sep 2009)
New Revision: 7739

Modified:
   DBIx-Class/0.08/branches/void_populate_resultset_cond/
   DBIx-Class/0.08/branches/void_populate_resultset_cond/lib/DBIx/Class/ResultSet.pm
   DBIx-Class/0.08/branches/void_populate_resultset_cond/t/101populate_rs.t
Log:
 r7933 at vger:  mendel | 2009-09-28 22:06:31 +0200
 Fixed a bug: $rs->populate in void context does not use the conditions from $rs.



Property changes on: DBIx-Class/0.08/branches/void_populate_resultset_cond
___________________________________________________________________
Name: svk:merge
   - 168d5346-440b-0410-b799-f706be625ff1:/DBIx-Class-current:2207
462d4d0c-b505-0410-bf8e-ce8f877b3390:/local/bast/DBIx-Class:3159
4d5fae46-8e6a-4e08-abee-817e9fb894a2:/local/bast/DBIx-Class/0.08/branches/cookbook_fixes:7657
4d5fae46-8e6a-4e08-abee-817e9fb894a2:/local/bast/DBIx-Class/0.08/branches/resultsetcolumn_custom_columns:5160
4d5fae46-8e6a-4e08-abee-817e9fb894a2:/local/bast/DBIx-Class/0.08/branches/sqla_1.50_compat:5414
4d5fae46-8e6a-4e08-abee-817e9fb894a2:/local/bast/DBIx-Class/0.08/trunk:7237
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/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/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/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/diamond_relationships:6310
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/discard_changes_replication_fix:7252
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/file_column:3920
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/fix-update-and-delete-as_query:6162
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/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/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_money_type:7096
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/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/on_connect_call:6854
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/on_disconnect_do:3694
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/oracle-tweaks:6222
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/oracle_sequence:4173
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/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:7566
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/prefetch:5699
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/prefetch_limit:6724
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/prefetch_redux:7206
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/reduce_pings:7261
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/replication_dedux:4600
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/rsrc_in_storage:6577
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/rt_bug_41083:5437
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/savepoints:4223
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/search_related_prefetch:6818
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/sqla_1.50_compat:5321
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/storage-ms-access:4142
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/storage-tweaks:6262
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/subclassed_rsset:5930
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/subquery:5617
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/syb_connected:6919
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/sybase:7682
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/sybase_bulk_insert:7679
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/sybase_mssql:6125
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/table_name_ref:7132
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/top_limit_altfix:6429
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/type_aware_update:6619
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/unresolvable_prefetch:6949
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/versioned_enhancements:4125
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/versioning:4578
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/views:5585
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:/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/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:7933
4d5fae46-8e6a-4e08-abee-817e9fb894a2:/local/bast/DBIx-Class/0.08/trunk:7237
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/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/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/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/diamond_relationships:6310
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/discard_changes_replication_fix:7252
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/file_column:3920
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/fix-update-and-delete-as_query:6162
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/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/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_money_type:7096
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/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/on_connect_call:6854
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/on_disconnect_do:3694
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/oracle-tweaks:6222
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/oracle_sequence:4173
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/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:7566
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/prefetch:5699
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/prefetch_limit:6724
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/prefetch_redux:7206
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/reduce_pings:7261
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/replication_dedux:4600
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/rsrc_in_storage:6577
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/rt_bug_41083:5437
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/savepoints:4223
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/search_related_prefetch:6818
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/sqla_1.50_compat:5321
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/storage-ms-access:4142
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/storage-tweaks:6262
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/subclassed_rsset:5930
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/subquery:5617
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/syb_connected:6919
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/sybase:7682
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/sybase_bulk_insert:7679
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/sybase_mssql:6125
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/table_name_ref:7132
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/top_limit_altfix:6429
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/type_aware_update:6619
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/unresolvable_prefetch:6949
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/versioned_enhancements:4125
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/versioning:4578
bd8105ee-0ff8-0310-8827-fb3f25b6796d:/DBIx-Class/0.08/branches/views:5585
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:7731
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/void_populate_resultset_cond/lib/DBIx/Class/ResultSet.pm
===================================================================
--- DBIx-Class/0.08/branches/void_populate_resultset_cond/lib/DBIx/Class/ResultSet.pm	2009-09-28 20:01:39 UTC (rev 7738)
+++ DBIx-Class/0.08/branches/void_populate_resultset_cond/lib/DBIx/Class/ResultSet.pm	2009-09-28 20:07:41 UTC (rev 7739)
@@ -1830,9 +1830,20 @@
       }
     }
 
+    ## merge with the conditions from $self (inherited conditions)
+    my ($inherited_cond) = $self->_merge_with_cond({});
+    delete @{$inherited_cond}{@names};
+    my @inherited_names = keys %$inherited_cond;
+    my @values;
+    foreach my $row (@$data) {
+      my %row_data;
+      @row_data{@names} = @{$row}{@names};
+      my ($merged_cond) = $self->_merge_with_cond(\%row_data);
+      push @values, [ @{$merged_cond}{@names, @inherited_names} ];
+    }
+    push @names, @inherited_names;
+
     ## do bulk insert on current row
-    my @values = map { [ @$_{@names} ] } @$data;
-
     $self->result_source->storage->insert_bulk(
       $self->result_source,
       \@names,
@@ -1973,15 +1984,39 @@
   $self->throw_exception( "new_result needs a hash" )
     unless (ref $values eq 'HASH');
 
-  my %new;
+  my ($merged_cond, $from_resultset) = $self->_merge_with_cond($values);
+
+  my %new = (
+    %$merged_cond,
+    @$from_resultset
+      ? (-from_resultset => $from_resultset)
+      : (),
+    -source_handle => $self->_source_handle,
+    -result_source => $self->result_source, # DO NOT REMOVE THIS, REQUIRED
+  );
+
+  return $self->result_class->new(\%new);
+}
+
+# _merge_with_cond
+#
+# Merges $values (a hashref) with the condition in the resultset and returns
+# the resulting hashref and an arrayref that contains the keys that are coming
+# from related resultsets.
+
+sub _merge_with_cond {
+  my ($self, $values) = @_;
+
+  my (%merged_cond, @from_resultset);
+
   my $alias = $self->{attrs}{alias};
 
   if (
     defined $self->{cond}
     && $self->{cond} eq $DBIx::Class::ResultSource::UNRESOLVABLE_CONDITION
   ) {
-    %new = %{ $self->{attrs}{related_objects} || {} };  # nothing might have been inserted yet
-    $new{-from_resultset} = [ keys %new ] if keys %new;
+    %merged_cond = %{ $self->{attrs}{related_objects} || {} };  # nothing might have been inserted yet
+    @from_resultset = keys %merged_cond;
   } else {
     $self->throw_exception(
       "Can't abstract implicit construct, condition not a hash"
@@ -1995,24 +2030,22 @@
 
     # precendence must be given to passed values over values inherited from
     # the cond, so the order here is important.
-    my %implied =  %{$self->_remove_alias($collapsed_cond, $alias)};
-    while( my($col,$value) = each %implied ){
-      if(ref($value) eq 'HASH' && keys(%$value) && (keys %$value)[0] eq '='){
-        $new{$col} = $value->{'='};
+    my %implied = %{$self->_remove_alias($collapsed_cond, $alias)};
+    while ( my($col, $value) = each %implied ) {
+      if (ref($value) eq 'HASH' && keys(%$value) && (keys %$value)[0] eq '=') {
+        $merged_cond{$col} = $value->{'='};
         next;
       }
-      $new{$col} = $value if $self->_is_deterministic_value($value);
+      $merged_cond{$col} = $value if $self->_is_deterministic_value($value);
     }
   }
 
-  %new = (
-    %new,
+  %merged_cond = (
+    %merged_cond,
     %{ $self->_remove_alias($values, $alias) },
-    -source_handle => $self->_source_handle,
-    -result_source => $self->result_source, # DO NOT REMOVE THIS, REQUIRED
   );
 
-  return $self->result_class->new(\%new);
+  return (\%merged_cond, \@from_resultset);
 }
 
 # _is_deterministic_value

Modified: DBIx-Class/0.08/branches/void_populate_resultset_cond/t/101populate_rs.t
===================================================================
--- DBIx-Class/0.08/branches/void_populate_resultset_cond/t/101populate_rs.t	2009-09-28 20:01:39 UTC (rev 7738)
+++ DBIx-Class/0.08/branches/void_populate_resultset_cond/t/101populate_rs.t	2009-09-28 20:07:41 UTC (rev 7739)
@@ -15,7 +15,7 @@
 use lib qw(t/lib);
 use DBICTest;
 
-plan tests => 142;
+plan tests => 182;
 
 
 ## ----------------------------------------------------------------------------
@@ -23,8 +23,16 @@
 ## ----------------------------------------------------------------------------
 
 my $schema	= DBICTest->init_schema();
+
+$schema->resultset('Genre')->create({
+  genreid => 1,
+  name => 'Mixed',
+});
+
 my $art_rs	= $schema->resultset('Artist');
+my $restricted_art_rs	= $art_rs->search({rank => 42});
 my $cd_rs	= $schema->resultset('CD');
+my $restricted_cd_rs	= $cd_rs->search({genreid => 1});
 
 ok( $schema, 'Got a Schema object');
 ok( $art_rs, 'Got Good Artist Resultset');
@@ -164,7 +172,7 @@
 		
 		## Get the result row objects.
 		
-		my ($girl, $crap, $damn, $formerly) = $art_rs->populate($artists);
+		my ($girl, $crap, $damn, $formerly) = $restricted_art_rs->populate($artists);
 		
 		## Do we have the right object?
 		
@@ -179,6 +187,10 @@
 		ok( $girl->name eq 'Angsty-Whiny Girl', "Got Correct name for result object");
 		ok( $damn->name eq 'Like I Give a Damn', "Got Correct name for result object");	
 		ok( $formerly->name eq 'Formerly Named', "Got Correct name for result object");
+		cmp_ok( $crap->rank, '==', 42, "Got Correct rank for result object");
+		cmp_ok( $girl->rank, '==', 42, "Got Correct rank for result object");
+		cmp_ok( $damn->rank, '==', 42, "Got Correct rank for result object");	
+		cmp_ok( $formerly->rank, '==', 42, "Got Correct rank for result object");
 		
 		## Create the expected children sub objects?
 		
@@ -238,7 +250,7 @@
 		
 		## Get the result row objects.
 		
-		my ($girl, $crap, $damn, $formerly) = $art_rs->populate($artists);
+		my ($girl, $crap, $damn, $formerly) = $restricted_art_rs->populate($artists);
 		
 		## Do we have the right object?
 		
@@ -254,6 +266,10 @@
 		ok( $girl->artistid == $first_aid, "Got Correct artist PK for result object");		
 		ok( $damn->name eq 'PK_Like I Give a Damn', "Got Correct name for result object");	
 		ok( $formerly->name eq 'PK_Formerly Named', "Got Correct name for result object");
+		cmp_ok( $crap->rank, '==', 42, "Got Correct rank for result object");
+		cmp_ok( $girl->rank, '==', 42, "Got Correct rank for result object");
+		cmp_ok( $damn->rank, '==', 42, "Got Correct rank for result object");	
+		cmp_ok( $formerly->rank, '==', 42, "Got Correct rank for result object");
 		
 		## Create the expected children sub objects?
 		
@@ -289,17 +305,21 @@
 			},		
 		];
 		
-		my ($cdA, $cdB) = $cd_rs->populate($cds);
+		my ($cdA, $cdB) = $restricted_cd_rs->populate($cds);
 		
 
 		isa_ok($cdA, 'DBICTest::CD', 'Created CD');
 		isa_ok($cdA->artist, 'DBICTest::Artist', 'Set Artist');
 		is($cdA->artist->name, 'Fred BloggsC', 'Set Artist to FredC');
+		isa_ok($cdA->genre, 'DBICTest::Genre', 'Set Genre');
+		cmp_ok($cdA->genre->id, '==', 1, 'Set Genre ID to 1');
 
 		
 		isa_ok($cdB, 'DBICTest::CD', 'Created CD');
 		isa_ok($cdB->artist, 'DBICTest::Artist', 'Set Artist');
 		is($cdB->artist->name, 'Fred BloggsD', 'Set Artist to FredD');
+		isa_ok($cdB->genre, 'DBICTest::Genre', 'Set Genre');
+		cmp_ok($cdB->genre->id, '==', 1, 'Set Genre ID to 1');
 	}
 
 	BELONGS_TO_WITH_PKs: {
@@ -322,16 +342,20 @@
 			},		
 		];
 		
-		my ($cdA, $cdB) = $cd_rs->populate($cds);
+		my ($cdA, $cdB) = $restricted_cd_rs->populate($cds);
 		
 		isa_ok($cdA, 'DBICTest::CD', 'Created CD');
 		isa_ok($cdA->artist, 'DBICTest::Artist', 'Set Artist');
 		is($cdA->artist->name, 'Fred BloggsC', 'Set Artist to FredC');
+		isa_ok($cdA->genre, 'DBICTest::Genre', 'Set Genre');
+		cmp_ok($cdA->genre->id, '==', 1, 'Set Genre ID to 1');
 		
 		isa_ok($cdB, 'DBICTest::CD', 'Created CD');
 		isa_ok($cdB->artist, 'DBICTest::Artist', 'Set Artist');
 		is($cdB->artist->name, 'Fred BloggsD', 'Set Artist to FredD');
 		ok($cdB->artist->artistid == $aid, "Got Expected Artist ID");
+		isa_ok($cdB->genre, 'DBICTest::Genre', 'Set Genre');
+		cmp_ok($cdB->genre->id, '==', 1, 'Set Genre ID to 1');
 	}
 }
 
@@ -395,7 +419,7 @@
 		
 		## Get the result row objects.
 		
-		$art_rs->populate($artists);
+		$restricted_art_rs->populate($artists);
 		
 		my ($undef, $girl, $formerly, $damn, $crap) = $art_rs->search(
 		
@@ -418,6 +442,11 @@
 		ok( $damn->name eq 'VOID_PK_Like I Give a Damn', "Got Correct name for result object");	
 		ok( $formerly->name eq 'VOID_PK_Formerly Named', "Got Correct name for result object");
 		ok( !defined $undef->name, "Got Correct name 'is undef' for result object");		
+		cmp_ok( $crap->rank, '==', 42, "Got Correct rank for result object");
+		cmp_ok( $girl->rank, '==', 42, "Got Correct rank for result object");
+		cmp_ok( $damn->rank, '==', 42, "Got Correct rank for result object");	
+		cmp_ok( $formerly->rank, '==', 42, "Got Correct rank for result object");
+		cmp_ok( $undef->rank, '==', 42, "Got Correct rank for result object");
 		
 		## Create the expected children sub objects?
 		ok( $crap->can('cds'), "Has cds relationship");
@@ -461,7 +490,7 @@
 			},		
 		];
 		
-		$cd_rs->populate($cds);
+		$restricted_cd_rs->populate($cds);
 		
 		my ($cdA, $cdB) = $cd_rs->search(
 			{title=>[sort map {$_->{title}} @$cds]},
@@ -471,11 +500,15 @@
 		isa_ok($cdA, 'DBICTest::CD', 'Created CD');
 		isa_ok($cdA->artist, 'DBICTest::Artist', 'Set Artist');
 		is($cdA->artist->name, 'Fred BloggsCB', 'Set Artist to FredCB');
+		isa_ok($cdA->genre, 'DBICTest::Genre', 'Set Genre');
+		cmp_ok($cdA->genre->id, '==', 1, 'Set Genre ID to 1');
 		
 		isa_ok($cdB, 'DBICTest::CD', 'Created CD');
 		isa_ok($cdB->artist, 'DBICTest::Artist', 'Set Artist');
 		is($cdB->artist->name, 'Fred BloggsDB', 'Set Artist to FredDB');
 		ok($cdB->artist->artistid == $aid, "Got Expected Artist ID");
+		isa_ok($cdB->genre, 'DBICTest::Genre', 'Set Genre');
+		cmp_ok($cdB->genre->id, '==', 1, 'Set Genre ID to 1');
 	}
 
 	BELONGS_TO_NO_PKs: {
@@ -501,7 +534,7 @@
 			},		
 		];
 		
-		$cd_rs->populate($cds);
+		$restricted_cd_rs->populate($cds);
 		
 		my ($cdA, $cdB, $cdC) = $cd_rs->search(
 			{title=>[sort map {$_->{title}} @$cds]},
@@ -512,16 +545,22 @@
 		isa_ok($cdA->artist, 'DBICTest::Artist', 'Set Artist');
 		is($cdA->title, 'Some CD3BB', 'Found Expected title');
 		is($cdA->artist->name, 'Fred BloggsCBB', 'Set Artist to FredCBB');
+		isa_ok($cdA->genre, 'DBICTest::Genre', 'Set Genre');
+		cmp_ok($cdA->genre->id, '==', 1, 'Set Genre ID to 1');
 		
 		isa_ok($cdB, 'DBICTest::CD', 'Created CD');
 		isa_ok($cdB->artist, 'DBICTest::Artist', 'Set Artist');
 		is($cdB->title, 'Some CD4BB', 'Found Expected title');
 		is($cdB->artist->name, 'Fred BloggsDBB', 'Set Artist to FredDBB');
+		isa_ok($cdB->genre, 'DBICTest::Genre', 'Set Genre');
+		cmp_ok($cdB->genre->id, '==', 1, 'Set Genre ID to 1');
 		
 		isa_ok($cdC, 'DBICTest::CD', 'Created CD');
 		isa_ok($cdC->artist, 'DBICTest::Artist', 'Set Artist');
 		is($cdC->title, 'Some CD5BB', 'Found Expected title');
 		is( $cdC->artist->name, undef, 'Set Artist to something undefined');
+		isa_ok($cdC->genre, 'DBICTest::Genre', 'Set Genre');
+		cmp_ok($cdC->genre->id, '==', 1, 'Set Genre ID to 1');
 	}
 	
 	
@@ -559,7 +598,7 @@
 		
 		## Get the result row objects.
 		
-		$art_rs->populate($artists);
+		$restricted_art_rs->populate($artists);
 		
 		my ($girl, $formerly, $damn, $crap) = $art_rs->search(
 			{name=>[sort map {$_->{name}} @$artists]},
@@ -579,6 +618,10 @@
 		ok( $girl->name eq 'VOID_Angsty-Whiny Girl', "Got Correct name for result object");
 		ok( $damn->name eq 'VOID_Like I Give a Damn', "Got Correct name for result object");	
 		ok( $formerly->name eq 'VOID_Formerly Named', "Got Correct name for result object");
+		cmp_ok( $crap->rank, '==', 42, "Got Correct rank for result object");
+		cmp_ok( $girl->rank, '==', 42, "Got Correct rank for result object");
+		cmp_ok( $damn->rank, '==', 42, "Got Correct rank for result object");	
+		cmp_ok( $formerly->rank, '==', 42, "Got Correct rank for result object");
 		
 		## Create the expected children sub objects?
 		ok( $crap->can('cds'), "Has cds relationship");
@@ -604,7 +647,7 @@
 }
 
 ARRAYREF_OF_ARRAYREF_STYLE: {
-  $art_rs->populate([
+  $restricted_art_rs->populate([
     [qw/artistid name/],
     [1000, 'A Formally Unknown Singer'],
     [1001, 'A singer that jumped the shark two albums ago'],
@@ -619,7 +662,11 @@
   is $jumped->name, 'A singer that jumped the shark two albums ago', 'Correct Name';
   is $cool->name, 'An actually cool singer.', 'Correct Name';
   
-  my ($cooler, $lamer) = $art_rs->populate([
+  cmp_ok $unknown->rank, '==', 42, 'Correct Rank';
+  cmp_ok $jumped->rank, '==', 42, 'Correct Rank';
+  cmp_ok $cool->rank, '==', 42, 'Correct Rank';
+  
+  my ($cooler, $lamer) = $restricted_art_rs->populate([
     [qw/artistid name/],
     [1003, 'Cooler'],
     [1004, 'Lamer'],	
@@ -627,4 +674,7 @@
   
   is $cooler->name, 'Cooler', 'Correct Name';
   is $lamer->name, 'Lamer', 'Correct Name';  
-}
\ No newline at end of file
+
+  cmp_ok $cooler->rank, '==', 42, 'Correct Rank';
+  cmp_ok $lamer->rank, '==', 42, 'Correct Rank';  
+}




More information about the Bast-commits mailing list