@ -25,6 +25,7 @@
# include "optimizer/clauses.h"
# include "optimizer/clauses.h"
# include "parser/parsetree.h"
# include "parser/parsetree.h"
# include "rewrite/rewriteHandler.h"
# include "rewrite/rewriteHandler.h"
# include "storage/bufmgr.h"
# include "tcop/tcopprot.h"
# include "tcop/tcopprot.h"
# include "utils/builtins.h"
# include "utils/builtins.h"
# include "utils/json.h"
# include "utils/json.h"
@ -684,8 +685,11 @@ report_triggers(ResultRelInfo *rInfo, bool show_relname, ExplainState *es)
appendStringInfo ( es - > str , " for constraint %s " , conname ) ;
appendStringInfo ( es - > str , " for constraint %s " , conname ) ;
if ( show_relname )
if ( show_relname )
appendStringInfo ( es - > str , " on %s " , relname ) ;
appendStringInfo ( es - > str , " on %s " , relname ) ;
appendStringInfo ( es - > str , " : time=%.3f calls=%.0f \n " ,
if ( es - > timing )
1000.0 * instr - > total , instr - > ntuples ) ;
appendStringInfo ( es - > str , " : time=%.3f calls=%.0f \n " ,
1000.0 * instr - > total , instr - > ntuples ) ;
else
appendStringInfo ( es - > str , " : calls=%.0f \n " , instr - > ntuples ) ;
}
}
else
else
{
{
@ -693,7 +697,8 @@ report_triggers(ResultRelInfo *rInfo, bool show_relname, ExplainState *es)
if ( conname )
if ( conname )
ExplainPropertyText ( " Constraint Name " , conname , es ) ;
ExplainPropertyText ( " Constraint Name " , conname , es ) ;
ExplainPropertyText ( " Relation " , relname , 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 ) ;
ExplainPropertyFloat ( " Calls " , instr - > ntuples , 0 , es ) ;
}
}
@ -1600,8 +1605,11 @@ ExplainNode(PlanState *planstate, List *ancestors,
ExplainPropertyLong ( " Local Written Blocks " , usage - > local_blks_written , es ) ;
ExplainPropertyLong ( " Local Written Blocks " , usage - > local_blks_written , es ) ;
ExplainPropertyLong ( " Temp Read Blocks " , usage - > temp_blks_read , es ) ;
ExplainPropertyLong ( " Temp Read Blocks " , usage - > temp_blks_read , es ) ;
ExplainPropertyLong ( " Temp Written Blocks " , usage - > temp_blks_written , 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 ) ;
if ( track_io_timing )
ExplainPropertyFloat ( " I/O Write Time " , INSTR_TIME_GET_MILLISEC ( usage - > blk_write_time ) , 3 , 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 ) ;
}
}
}
}
}