return $self->builder->{_relative_time};
}
+sub resultset_limit {
+ my $self = shift;
+ my $limit = shift;
+ $self->builder->{_resultset_limit} = $limit if (defined $limit);
+ return self->builder->{_resultset_limit};
+}
+
sub resolve_param {
my $self = shift;
my $val = shift;
if ($self->is_subquery) {
$sql = '(';
+ } elsif ($self->resultset_limit) {
+ $sql = 'SELECT * FROM (';
}
$sql .= "SELECT\t" . join(",\n\t", map { $_->toSQL } @{ $self->{_select} }) . "\n" if (@{ $self->{_select} });
if ($self->is_subquery) {
$sql .= ') '. $self->{_alias} . "\n";
+ } elsif ($self->resultset_limit) {
+ $sql .= ') limited_to_' . $self->resultset_limit .
+ '_hits LIMIT ' . $self->resultset_limit . "\n";
}
return $self->{_sql} = $sql;
# before Clark refuses to try to draw a chart
my $max_rows_for_charts = 1000;
my $statement_timeout = 10 * 60 * 1000;
+my $resultset_limit;
GetOptions(
"daemon" => \$daemon,
"sleep=i" => \$sleep_interval,
"concurrency=i" => \$count,
"max-rows-for-charts=i" => \$max_rows_for_charts,
+ "resultset-limit=i" => \$resultset_limit,
"statement-timeout=i" => \$statement_timeout,
"bootstrap|boostrap=s" => \$config,
"lockfile=s" => \$lockfile,
$r->{resultset}->set_pivot_label($report_data->{__pivot_label}) if $report_data->{__pivot_label};
$r->{resultset}->set_pivot_default($report_data->{__pivot_default}) if $report_data->{__pivot_default};
$r->{resultset}->relative_time($r->{run_time});
+ $r->{resultset}->resultset_limit($resultset_limit) if $resultset_limit;
push @reports, $r;
}