Calling update on a resultset using search with a join will not use the
join resulting in invalid sql.
example :
my $search_criteria = {'ancestor_id' => \q{ = category_id}, 'level' => 1};
my $query_attributes = { join => 'ancestor_join' };
my $rs = $schema->resultset('Category')->search($search_criteria,
$query_attributes);
$rs->update({ has_children => 1 } );
will give :
Unknown column 'ancestor_id' in 'where clause'
So the search criteria are used but not the join.