package QBit::QueryData::Function::DISTINCT;
$QBit::QueryData::Function::DISTINCT::VERSION = '0.011';
use qbit;

use base qw(QBit::QueryData::Function);

my $COUNT_THIS_OBJECT = 0;

sub init {
    my ($self) = @_;

    $self->set_error(gettext('You can use in request not more than one function "DISTINCT"'))
      if ++$COUNT_THIS_OBJECT > 1;

    $self->SUPER::init();

    return FALSE if $self->has_errors();

    $self->{'PATH'}           = $self->qd->_get_path($self->args->[0]);
    $self->{'__MAIN_FIELD__'} = $self->args->[0];
}

sub process {
    my ($self, $row) = @_;

    return
        '        $new_row->{'
      . $self->qd->quote($self->field) . '} = '
      . $self->qd->_get_field_code_by_path('$row', $self->{'PATH'}) . ';
';
}

sub DESTROY {$COUNT_THIS_OBJECT--}

TRUE;