One of my result classes has a rel ordered by a related column: __PACKAGE__->has_many( "entries", "NAC::Model::DBIC::Table::Patch_Interface", 'fk_patch_request', { order_by => 'row_index' }, );
The following code used to sort by entries.row_index but doesn't any more: my $request = $rs->find( $id, { prefetch => [ 'rel_accept', 'rel_req_status', 'rel_req_customer', 'view_version', 'entries', ], }); This is the resulting SQL. It does an order by but on the primary key of the result class: SELECT me.id_patch_request, me.req_id, me.req_desc, me.req_dn, me.req_name, me.req_email, me.dst_kst_ktr, me.req_datetime, me.accept, me.accept_datetime, me.accept_agent, me.req_status, me.req_status_datetime, me.req_agent, me.agent_comment, me.req_customer, me.req_comment, rel_accept.id_bool_vals, rel_accept.bool_val_name, rel_req_status.id_fw_status, rel_req_status.status_name, rel_req_customer.id_customer, rel_req_customer.customername, rel_req_customer.create_datetime, rel_req_customer.create_user, rel_req_customer.update_datetime, rel_req_customer.update_user, view_version.id_patch_request, view_version.version, entries.fk_patch_request, entries.row_index, entries.hostid, entries.fk_location, entries.rack, entries.fk_patch_conn_type, entries.fk_ip_net, entries.want_ipv4, entries.ipaddr, entries.want_ipv6, entries.ipv6, entries.fqdn, entries.cable_id FROM patch_request me LEFT JOIN bool_vals rel_accept ON rel_accept.id_bool_vals = me.accept JOIN fw_status rel_req_status ON rel_req_status.id_fw_status = me.req_status JOIN customer rel_req_customer ON rel_req_customer.id_customer = me.req_customer JOIN view_patch_request_version view_version ON view_version.id_patch_request = me.id_patch_request LEFT JOIN patch_interface entries ON entries.fk_patch_request = me.id_patch_request WHERE me.id_patch_request = '9569' ORDER BY me.id_patch_request I worked around it by adding the order_by to the calling find: my $request = $rs->find( $id, { prefetch => [ 'rel_accept', 'rel_req_status', 'rel_req_customer', 'view_version', 'entries', ], order_by => 'entries.row_index', }); which produces this SQL as expected: SELECT me.id_patch_request, me.req_id, me.req_desc, me.req_dn, me.req_name, me.req_email, me.dst_kst_ktr, me.req_datetime, me.accept, me.accept_datetime, me.accept_agent, me.req_status, me.req_status_datetime, me.req_agent, me.agent_comment, me.req_customer, me.req_comment, rel_accept.id_bool_vals, rel_accept.bool_val_name, rel_req_status.id_fw_status, rel_req_status.status_name, rel_req_customer.id_customer, rel_req_customer.customername, rel_req_customer.create_ datetime, rel_req_customer.create_user, rel_req_customer.update_datetime, rel_req_customer.update_user, view_version.id_patch_request, view_version.version, entries.fk_patch_request, entries.row_index, entries.hostid, entries.fk_location, entries.rack, entries.fk_patch_conn_type, entries.fk_ip_net, entries.want_ipv4, entries.ipaddr, entries.want_ipv6, entries.ipv6, entries.fqdn, entries.cable_id FROM patch_request me LEFT JOIN bool_vals rel_accept ON rel_accept.id_bool_vals = me.accept JOIN fw_status rel_req_status ON rel_req_status.id_fw_status = me.req_status JOIN customer rel_req_customer ON rel_req_customer.id_customer = me.req_customer JOIN view_patch_request_version view_version ON view_version.id_patch_request = me.id_patch_request LEFT JOIN patch_interface entries ON entries.fk_patch_request = me.id_patch_request WHERE me.id_patch_request = '9569' ORDER BY entries.row_index -- Cheers, Alex *"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"* T-Systems Austria GesmbH Rennweg 97-99, 1030 Wien Handelsgericht Wien, FN 79340b *"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"* Notice: This e-mail contains information that is confidential and may be privileged. If you are not the intended recipient, please notify the sender and then delete this e-mail immediately. *"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*"*
_______________________________________________ List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class IRC: irc.perl.org#dbix-class SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/ Searchable Archive: http://www.grokbase.com/group/dbix-class@lists.scsys.co.uk