diff --git a/src/backend/optimizer/plan/planner.c b/src/backend/optimizer/plan/planner.c index 1e4dd27dba..3c713782f1 100644 --- a/src/backend/optimizer/plan/planner.c +++ b/src/backend/optimizer/plan/planner.c @@ -17,6 +17,7 @@ #include #include +#include #include "access/genam.h" #include "access/htup_details.h" @@ -274,11 +275,22 @@ planner(Query *parse, const char *query_string, int cursorOptions, ParamListInfo boundParams) { PlannedStmt *result; + struct timespec start, end; + + clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &start); if (planner_hook) result = (*planner_hook) (parse, query_string, cursorOptions, boundParams); else result = standard_planner(parse, query_string, cursorOptions, boundParams); + + clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &end); + + elog(LOG, + "planning time in %f nanoseconds", + ((double) (end.tv_sec * 1000000000 + end.tv_nsec) - + (double) (start.tv_sec * 1000000000 + start.tv_nsec))); + return result; }