From: oetiker Date: Tue, 7 Apr 2009 06:37:17 +0000 (+0000) Subject: fix for #213 restore old behaviour of --lazy. Even in lazy mode all the data X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=6b4c40f288ebb00cee2ba2cb2f51a5c7ab2dc743;p=rrdtool.git fix for #213 restore old behaviour of --lazy. Even in lazy mode all the data calculation elements are run. The main time saving comes from the fact that the graph is not being drawn and the image does not have to be compressed. git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk/program@1773 a5681a0c-68f1-0310-ab6d-d61299d08faa --- diff --git a/NEWS b/NEWS index 1f3b38b..4d8281d 100644 --- a/NEWS +++ b/NEWS @@ -23,3 +23,4 @@ RRDgraph RRDflush -------- * instruct the rrdcached to flush all its data + diff --git a/doc/rrdgraph.pod b/doc/rrdgraph.pod index b798ff9..72728e7 100644 --- a/doc/rrdgraph.pod +++ b/doc/rrdgraph.pod @@ -301,9 +301,12 @@ stack of lines or areas. [B<-z>|B<--lazy>] Only generate the graph if the current graph is out of date or not existent. -Note, that only the image size will be returned, if you run with lazy even -when using graphv and even when using PRINT. - +Note, that all the calculations will happen regardless so that the output of +PRINT and graphv will be complete regardless. Note that the behaviour of +lazy in this regard has seen several changes over time. The only thing you +can realy rely on before rrdtool 1.3.7 is that lazy will not generate the +graph when it is already there and up to date, and also that it will output +the size of the graph. [B<--daemon> I
] diff --git a/src/rrd_graph.c b/src/rrd_graph.c index 549e08c..a0de36e 100644 --- a/src/rrd_graph.c +++ b/src/rrd_graph.c @@ -3200,14 +3200,6 @@ int graph_paint( // PangoFontMap *font_map = pango_cairo_font_map_get_default(); - /* if we want and can be lazy ... quit now */ - if (lazy) { - info.u_cnt = im->ximg; - grinfo_push(im, sprintf_alloc("image_width"), RD_I_CNT, info); - info.u_cnt = im->yimg; - grinfo_push(im, sprintf_alloc("image_height"), RD_I_CNT, info); - return 0; - } /* pull the data from the rrd files ... */ if (data_fetch(im) == -1) return -1; @@ -3223,7 +3215,8 @@ int graph_paint( if (i < 0) return -1; - if ((i == 0) || lazy) + /* if we want and can be lazy ... quit now */ + if (i == 0) return 0; /************************************************************** @@ -3250,6 +3243,10 @@ int graph_paint( info.u_cnt = im->end; grinfo_push(im, sprintf_alloc("graph_end"), RD_I_CNT, info); + /* if we want and can be lazy ... quit now */ + if (lazy) + return 0; + /* get actual drawing data and find min and max values */ if (data_proc(im) == -1) return -1; @@ -3267,6 +3264,7 @@ int graph_paint( info.u_val = im->maxval; grinfo_push(im, sprintf_alloc("value_max"), RD_I_VAL, info); + if (!calc_horizontal_grid(im)) return -1; /* reset precalc */