Я борюсь с довольно фундаментальным использованием предварительной выборки DBIx-Class. Я хочу ограничить количество столбцов, возвращаемых из объединенных таблиц при использовании предварительной выборки.
Этот:
my $rs = $schema->resultset('CD')->search(
{}, # No searching restrictions through WHERE clause
{
prefetch => [qw/ artist /],
columns => [qw/ title artist.name /],
}
);
Генерирует этот SQL:
SELECT cd.title, artist.*
FROM cd
JOIN artist ON cd.artist = artist.id
Но я не хочу вытаскивать все столбцы исполнителя, только столбцы cd.title и artist.name (в этом примере мой реальный вариант использования более сложен). Функция столбцов работает только с основной таблицей, а не с объединенными таблицами.
Я хотел бы этот SQL:
SELECT cd.title, artist.name
FROM cd
JOIN artist ON cd.artist = artist.id
Я только осваиваю Catalyst/DBIX-Class, так что, вероятно, я упускаю из виду что-то ослепительно очевидное!