OSDN Git Service

Bug fix for text representation when log_timing = off
authorKyotaro Horiguchi <horiguchi.kyotaro@lab.ntt.co.jp>
Fri, 25 Apr 2014 05:54:17 +0000 (14:54 +0900)
committerKyotaro Horiguchi <horiguchi.kyotaro@lab.ntt.co.jp>
Fri, 3 Apr 2015 05:57:58 +0000 (14:57 +0900)
plan structure don't have actual timings if log_timing is turned
off. This should be safely skipped.

pgsp_json_text.c

index 143dac6..2e779c3 100644 (file)
@@ -297,10 +297,10 @@ print_current_node(pgspParserContext *ctx)
                appendStringInfoString(s, ")");
        }
 
-       if (HASSTRING(v->actual_startup_time) &&
-               HASSTRING(v->actual_total_time) &&
-               HASSTRING(v->actual_rows) &&
-               HASSTRING(v->actual_loops))
+       if (HASSTRING(v->actual_rows) ||
+               HASSTRING(v->actual_loops) ||
+               HASSTRING(v->actual_startup_time) ||
+               HASSTRING(v->actual_total_time))
        {
                if (ISZERO(v->actual_loops))
                {
@@ -308,11 +308,17 @@ print_current_node(pgspParserContext *ctx)
                }
                else
                {
-                       appendStringInfoString(s, " (actual time=");
-                       appendStringInfoString(s, v->actual_startup_time);
-                       appendStringInfoString(s, "..");
-                       appendStringInfoString(s, v->actual_total_time);
-                       appendStringInfoString(s, " rows=");
+                       appendStringInfoString(s, " (actual ");
+                       if (HASSTRING(v->actual_startup_time) ||
+                               HASSTRING(v->actual_total_time)) {
+                               appendStringInfoString(s, "time=");
+                               appendStringInfoString(s, v->actual_startup_time);
+                               appendStringInfoString(s, "..");
+                               appendStringInfoString(s, v->actual_total_time);
+                               appendStringInfoString(s, " ");
+                       }
+
+                       appendStringInfoString(s, "rows=");
                        appendStringInfoString(s, v->actual_rows);
                        appendStringInfoString(s, " loops=");
                        appendStringInfoString(s, v->actual_loops);