From 4d217819ffbdd9bdd275fc681f57fed2e4d5fef9 Mon Sep 17 00:00:00 2001 From: Sait Talha Nisanci Date: Fri, 3 Jul 2020 20:35:51 +0300 Subject: [PATCH] Fix explain subplan duration --- src/backend/distributed/executor/subplan_execution.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/backend/distributed/executor/subplan_execution.c b/src/backend/distributed/executor/subplan_execution.c index a579ab8db..3651d7f52 100644 --- a/src/backend/distributed/executor/subplan_execution.c +++ b/src/backend/distributed/executor/subplan_execution.c @@ -22,6 +22,8 @@ #include "executor/executor.h" #include "utils/datetime.h" +#define SECOND_TO_MILLI_SECOND 1000 +#define MICRO_TO_MILLI_SECOND 0.001 int MaxIntermediateResult = 1048576; /* maximum size in KB the intermediate result can grow to */ /* when this is true, we enforce intermediate result size limit in all executors */ @@ -86,7 +88,9 @@ ExecuteSubPlans(DistributedPlan *distributedPlan) int durationMicrosecs = 0; TimestampDifference(startTimestamp, GetCurrentTimestamp(), &durationSeconds, &durationMicrosecs); - subPlan->durationMillisecs = durationSeconds * 1000 * +durationMicrosecs * 10e-3; + + subPlan->durationMillisecs = durationSeconds * SECOND_TO_MILLI_SECOND; + subPlan->durationMillisecs += durationMicrosecs * MICRO_TO_MILLI_SECOND; subPlan->bytesSentPerWorker = RemoteFileDestReceiverBytesSent(copyDest); subPlan->remoteWorkerCount = list_length(remoteWorkerNodeList);