#include "optimizer/planmain.h"
 #include "parser/parsetree.h"
 #include "rewrite/rewriteHandler.h"
+#include "storage/bufmgr.h"
 #include "tcop/tcopprot.h"
 #include "utils/builtins.h"
 #include "utils/json.h"
                                appendStringInfo(es->str, " for constraint %s", conname);
                        if (show_relname)
                                appendStringInfo(es->str, " on %s", relname);
-                       appendStringInfo(es->str, ": time=%.3f calls=%.0f\n",
-                                                        1000.0 * instr->total, instr->ntuples);
+                       if (es->timing)
+                               appendStringInfo(es->str, ": time=%.3f calls=%.0f\n",
+                                                                1000.0 * instr->total, instr->ntuples);
+                       else
+                               appendStringInfo(es->str, ": calls=%.0f\n", instr->ntuples);
                }
                else
                {
                        if (conname)
                                ExplainPropertyText("Constraint Name", conname, es);
                        ExplainPropertyText("Relation", relname, es);
-                       ExplainPropertyFloat("Time", 1000.0 * instr->total, 3, es);
+                       if (es->timing)
+                               ExplainPropertyFloat("Time", 1000.0 * instr->total, 3, es);
                        ExplainPropertyFloat("Calls", instr->ntuples, 0, es);
                }
 
                ExplainPropertyLong("Local Written Blocks", usage->local_blks_written, es);
                ExplainPropertyLong("Temp Read Blocks", usage->temp_blks_read, es);
                ExplainPropertyLong("Temp Written Blocks", usage->temp_blks_written, es);
-               ExplainPropertyFloat("I/O Read Time", INSTR_TIME_GET_MILLISEC(usage->blk_read_time), 3, es);
-               ExplainPropertyFloat("I/O Write Time", INSTR_TIME_GET_MILLISEC(usage->blk_write_time), 3, es);
+               if (track_io_timing)
+               {
+                       ExplainPropertyFloat("I/O Read Time", INSTR_TIME_GET_MILLISEC(usage->blk_read_time), 3, es);
+                       ExplainPropertyFloat("I/O Write Time", INSTR_TIME_GET_MILLISEC(usage->blk_write_time), 3, es);
+               }
        }
 }