NAME

DBIx::SearchBuilder::Unique - Ensure uniqueness of records in a collection

SYNOPSIS

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
}

DESCRIPTION

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.