DBIx::SearchBuilder::Unique - Ensure uniqueness of records in a
collection
package Foo::Collection;
use base 'DBIx::SearchBuilder';
use DBIx::SearchBuilder::Unique; # mixin
my $collection = Foo::Collection->New();
$collection->SetupComplicatedJoins;
$collection->OrderByMagic;
while (my $thing = $collection->Next) {
# $thing is going to be distinct
}
Currently, DBIx::SearchBuilder makes exceptions for databases
which cannot handle both "SELECT DISTINCT"
and ordering in the same statement; it drops the
"DISTINCT" requirement. This, of course,
means that you can get the same row twice, which you might not want. If
that's the case, use this module as a mix-in, and it will provide you with
an "AddRecord" method which ensures that a
record will not appear twice in the same search.