*** ./src/backend/optimizer/path/allpaths.c.orig Wed Dec 6 20:48:56 2006 --- ./src/backend/optimizer/path/allpaths.c Wed Dec 6 21:41:05 2006 *************** *** 32,37 **** --- 32,38 ---- #include "parser/parsetree.h" #include "rewrite/rewriteManip.h" + #include /* These parameters are set by GUC */ bool enable_geqo = false; /* just in case GUC doesn't set it */ *************** *** 189,194 **** --- 190,200 ---- #endif } + static double + timediff(struct timeval *begin, struct timeval *end) { + return ((double)( end->tv_sec - begin->tv_sec )) + ( (double)( end->tv_usec-begin->tv_usec ) ) / 1.0e+6; + } + /* * set_plain_rel_pathlist * Build access paths for a plain relation (no subquery, no inheritance) *************** *** 196,201 **** --- 202,209 ---- static void set_plain_rel_pathlist(PlannerInfo *root, RelOptInfo *rel, RangeTblEntry *rte) { + struct timeval begin, end; + /* Mark rel with estimated output rows, width, etc */ set_baserel_size_estimates(root, rel); *************** *** 243,249 **** --- 251,260 ---- create_index_paths(root, rel); /* Consider index scans with rewrited quals */ + gettimeofday(&begin,NULL); keybased_rewrite_index_paths(root, rel); + gettimeofday(&end,NULL); + elog(NOTICE,"Elapsed time %g sec", timediff(&begin, &end)); /* Consider TID scans */ create_tidscan_paths(root, rel);