Если вычисление должно быть выполнено на стороне базы данных (после вашего предыдущего комментария), тогда используйте предложенную мной идею временного столбца вместе с некоторым прямым SQL.Предполагая, что вы не хотите выполнять поиск по полю, тогда должно работать что-то вроде следующего:
my $rs = My::Schema->resultset('people');
my @columns_as = $rs->result_source->columns;
my @columns = map { "me.$_" } @columns_as;
my @people = $rs->search(
{ ... where conditions here ... },
{
select => [ @columns, \"me.first || ' ' || me.last" ], # scalar ref for direct SQL
as => [ @columns_as, 'full_name' ],
order_by => 'full_name',
... etc ...
}
);
# then
print $_->full_name."\n" foreach @people; # now set on the object...
Теоретически должно быть возможно просто указать дополнительные столбцы select
и as
, используя +select
и +as
, но я не смог заставить их работать должным образом (это было год или около того назад).Не могу точно вспомнить, почему сейчас ...