LP#1435494: do not encourage <resultset_limit></resultset_limit>
authorGalen Charlton <gmc@esilibrary.com>
Thu, 9 Apr 2015 20:06:25 +0000 (20:06 +0000)
committerBen Shum <bshum@biblio.org>
Fri, 10 Apr 2015 02:02:11 +0000 (22:02 -0400)
An empty node in opensrf.xml gets parsed as an empty hashref,
not an empty scalar, so we'll use <resultset_limit>0</resultlet_limit>
in the suggested opensrf.xml config.  This fixes an issue
noticed by Ben Shum during testing where reports could fail with
the following message:

  DBD::Pg::st execute failed: ERROR: syntax error at or near "0"
  LINE 43: ) limited_to_HASH(0x2a974f8)_hits LIMIT HASH(0x2a974f8)
                             ^ at /openils/bin/clark-kent.pl line 243.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Ben Shum <bshum@biblio.org>
Open-ILS/examples/opensrf.xml.example
Open-ILS/src/reporter/clark-kent.pl

index fdaf150..62ab1b8 100644 (file)
@@ -198,8 +198,10 @@ vim:et:ts=4:sw=4:
                      has been limited in this fashion.  This setting can be
                      overriden by the -resultset-limit command-line switch of
                      clark-kent.pl.
+
+                     A value of 0 means that no limit should be set.
                 -->
-                <resultset_limit></resultset_limit>
+                <resultset_limit>0</resultset_limit>
             </setup>
         </reporter>
 
index c2a6e9f..0e8a99b 100755 (executable)
@@ -109,7 +109,9 @@ my $max_rows_for_charts = $opt_max_rows_for_charts //
                           1000;
 $max_rows_for_charts = 1000 unless $max_rows_for_charts =~ /^\d+$/;
 my $resultset_limit     = $opt_resultset_limit //
-                          $sc->config_value( reporter => setup => 'resultset_limit' );
+                          $sc->config_value( reporter => setup => 'resultset_limit' ) //
+                          0;
+$resultset_limit = 0 unless $resultset_limit =~ /^\d+$/; # 0 means no limit
 
 my ($dbh,$running,$sth,@reports,$run, $current_time);