From ea91003a99e679caa5bf56915f085a7c4931805b Mon Sep 17 00:00:00 2001 From: Thomas Hochstein Date: Tue, 3 Sep 2013 14:55:00 +0200 Subject: [PATCH] One more default sorting order ("grouping"). If --group-by is not set, output will be grouped by month by default (as long as --boundary is not set to 'level' or 'average', where grouping by newsgroup is default). Now we default to 'newsgroup' if just one newsgroup is requested by --newsgroups, but more than one month by --month. Both defaults can be overridden. But forced --group-by=month for --report type 'average' or 'sum' in front so defaults are not checked. Signed-off-by: Thomas Hochstein --- bin/groupstats.pl | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/bin/groupstats.pl b/bin/groupstats.pl index 7a3f7e4..bcb2b61 100755 --- a/bin/groupstats.pl +++ b/bin/groupstats.pl @@ -126,12 +126,17 @@ if ($OptBoundType and $OptBoundType ne 'default') { } ### get sort order and build SQL 'ORDER BY' clause +# force to 'month' for $OptReportType 'average' or 'sum' +$OptGroupBy = 'month' if ($OptReportType and $OptReportType ne 'default'); # default to 'newsgroup' for $OptBoundType 'level' or 'average' $OptGroupBy = 'newsgroup' if (!$OptGroupBy and $OptBoundType and $OptBoundType ne 'default'); -# force to 'month' for $OptReportType 'average' or 'sum' -$OptGroupBy = 'month' if ($OptReportType and $OptReportType ne 'default'); +# default to 'newsgroup' if $OptGroupBy is not set and +# just one newsgroup is requested, but more than one month +$OptGroupBy = 'newsgroup' if (!$OptGroupBy and + $OptMonth =~ /:/ and $OptNewsgroups !~ /[:*%]/); # parse $OptGroupBy to $GroupBy, create ORDER BY clause $SQLOrderClause +# if $OptGroupBy is still not set, SQLSortOrder() will default to 'month' my ($GroupBy,$SQLOrderClause) = SQLSortOrder($OptGroupBy, $OptOrderBy); # $GroupBy will contain 'month' or 'newsgroup' (parsed result of $OptGroupBy) # set it to 'month' or 'key' for OutputData()