OK, updated patch attached and applied;  thanks.

---------------------------------------------------------------------------

Zdenek Kotala wrote:
> It looks OK now.
> 
>       Zdenek
> 
> Dne  8.03.09 21:58, Robert Lor napsal(a):
> 
> >> 2) Maybe
> >>
> >> TRACE_POSTGRESQL_SLRU_READPAGE_PHYSICAL_DONE(true, -1, -1);
> >>
> >> would be better. Because  slru_errcause, slru_errno can contains garbage
> >> in situation when everything goes fine. Same for write.   
> > 
> > I've made the changes per your suggestion although one can argue that 
> > the script can check arg0, and if it's true, avoid using arg1 and arg2 
> > as they are meaningless.
> 
> Thanks.
> 
> >>  
> >> I think it is committable for 8.4.
> >>   
> > 
> > That would be awesome!
> 
> yeah, but it depends on commiters :-)
> 
>               Zdenek
> 
> -- 
> Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-hackers

-- 
  Bruce Momjian  <br...@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +
Index: src/backend/access/transam/slru.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/access/transam/slru.c,v
retrieving revision 1.45
diff -c -c -r1.45 slru.c
*** src/backend/access/transam/slru.c	1 Jan 2009 17:23:36 -0000	1.45
--- src/backend/access/transam/slru.c	2 Apr 2009 19:01:55 -0000
***************
*** 57,62 ****
--- 57,63 ----
  #include "storage/fd.h"
  #include "storage/shmem.h"
  #include "miscadmin.h"
+ #include "pg_trace.h"
  
  
  /*
***************
*** 372,377 ****
--- 373,379 ----
  {
  	SlruShared	shared = ctl->shared;
  
+ 	TRACE_POSTGRESQL_SLRU_READPAGE_START((uintptr_t)ctl, pageno, write_ok, xid);
  	/* Outer loop handles restart if we must wait for someone else's I/O */
  	for (;;)
  	{
***************
*** 399,404 ****
--- 401,407 ----
  			}
  			/* Otherwise, it's ready to use */
  			SlruRecentlyUsed(shared, slotno);
+ 			TRACE_POSTGRESQL_SLRU_READPAGE_DONE(slotno);
  			return slotno;
  		}
  
***************
*** 446,451 ****
--- 449,455 ----
  			SlruReportIOError(ctl, pageno, xid);
  
  		SlruRecentlyUsed(shared, slotno);
+ 		TRACE_POSTGRESQL_SLRU_READPAGE_DONE(slotno);
  		return slotno;
  	}
  }
***************
*** 470,475 ****
--- 474,481 ----
  	SlruShared	shared = ctl->shared;
  	int			slotno;
  
+ 	TRACE_POSTGRESQL_SLRU_READPAGE_READONLY((uintptr_t)ctl, pageno, xid);
+ 
  	/* Try to find the page while holding only shared lock */
  	LWLockAcquire(shared->ControlLock, LW_SHARED);
  
***************
*** 511,516 ****
--- 517,524 ----
  	int			pageno = shared->page_number[slotno];
  	bool		ok;
  
+ 	TRACE_POSTGRESQL_SLRU_WRITEPAGE_START((uintptr_t)ctl, pageno, slotno);
+ 
  	/* If a write is in progress, wait for it to finish */
  	while (shared->page_status[slotno] == SLRU_PAGE_WRITE_IN_PROGRESS &&
  		   shared->page_number[slotno] == pageno)
***************
*** 525,531 ****
--- 533,542 ----
  	if (!shared->page_dirty[slotno] ||
  		shared->page_status[slotno] != SLRU_PAGE_VALID ||
  		shared->page_number[slotno] != pageno)
+ 	{
+ 		TRACE_POSTGRESQL_SLRU_WRITEPAGE_DONE();
  		return;
+ 	}
  
  	/*
  	 * Mark the slot write-busy, and clear the dirtybit.  After this point, a
***************
*** 569,574 ****
--- 580,587 ----
  	/* Now it's okay to ereport if we failed */
  	if (!ok)
  		SlruReportIOError(ctl, pageno, InvalidTransactionId);
+ 
+ 	TRACE_POSTGRESQL_SLRU_WRITEPAGE_DONE();
  }
  
  /*
***************
*** 593,598 ****
--- 606,613 ----
  
  	SlruFileName(ctl, path, segno);
  
+ 	TRACE_POSTGRESQL_SLRU_READPAGE_PHYSICAL_START((uintptr_t)ctl, path, pageno, slotno);
+ 
  	/*
  	 * In a crash-and-restart situation, it's possible for us to receive
  	 * commands to set the commit status of transactions whose bits are in
***************
*** 607,612 ****
--- 622,628 ----
  		{
  			slru_errcause = SLRU_OPEN_FAILED;
  			slru_errno = errno;
+ 			TRACE_POSTGRESQL_SLRU_READPAGE_PHYSICAL_DONE(false, slru_errcause, slru_errno);
  			return false;
  		}
  
***************
*** 614,619 ****
--- 630,636 ----
  				(errmsg("file \"%s\" doesn't exist, reading as zeroes",
  						path)));
  		MemSet(shared->page_buffer[slotno], 0, BLCKSZ);
+ 		TRACE_POSTGRESQL_SLRU_READPAGE_PHYSICAL_DONE(true, -1, -1);
  		return true;
  	}
  
***************
*** 622,627 ****
--- 639,645 ----
  		slru_errcause = SLRU_SEEK_FAILED;
  		slru_errno = errno;
  		close(fd);
+ 		TRACE_POSTGRESQL_SLRU_READPAGE_PHYSICAL_DONE(false, slru_errcause, slru_errno);
  		return false;
  	}
  
***************
*** 631,636 ****
--- 649,655 ----
  		slru_errcause = SLRU_READ_FAILED;
  		slru_errno = errno;
  		close(fd);
+ 		TRACE_POSTGRESQL_SLRU_READPAGE_PHYSICAL_DONE(false, slru_errcause, slru_errno);
  		return false;
  	}
  
***************
*** 638,646 ****
--- 657,668 ----
  	{
  		slru_errcause = SLRU_CLOSE_FAILED;
  		slru_errno = errno;
+ 		TRACE_POSTGRESQL_SLRU_READPAGE_PHYSICAL_DONE(false, slru_errcause, slru_errno);
  		return false;
  	}
  
+ 	TRACE_POSTGRESQL_SLRU_READPAGE_PHYSICAL_DONE(true, -1, -1);
+ 
  	return true;
  }
  
***************
*** 668,673 ****
--- 690,697 ----
  	char		path[MAXPGPATH];
  	int			fd = -1;
  
+ 	TRACE_POSTGRESQL_SLRU_WRITEPAGE_PHYSICAL_START((uintptr_t)ctl, pageno, slotno);
+ 
  	/*
  	 * Honor the write-WAL-before-data rule, if appropriate, so that we do not
  	 * write out data before associated WAL records.  This is the same action
***************
*** 753,758 ****
--- 777,783 ----
  		{
  			slru_errcause = SLRU_OPEN_FAILED;
  			slru_errno = errno;
+ 			TRACE_POSTGRESQL_SLRU_WRITEPAGE_PHYSICAL_DONE(false, slru_errcause, slru_errno);
  			return false;
  		}
  
***************
*** 781,786 ****
--- 806,812 ----
  		slru_errno = errno;
  		if (!fdata)
  			close(fd);
+ 		TRACE_POSTGRESQL_SLRU_WRITEPAGE_PHYSICAL_DONE(false, slru_errcause, slru_errno);
  		return false;
  	}
  
***************
*** 794,799 ****
--- 820,826 ----
  		slru_errno = errno;
  		if (!fdata)
  			close(fd);
+ 		TRACE_POSTGRESQL_SLRU_WRITEPAGE_PHYSICAL_DONE(false, slru_errcause, slru_errno);
  		return false;
  	}
  
***************
*** 808,813 ****
--- 835,841 ----
  			slru_errcause = SLRU_FSYNC_FAILED;
  			slru_errno = errno;
  			close(fd);
+ 			TRACE_POSTGRESQL_SLRU_WRITEPAGE_PHYSICAL_DONE(false, slru_errcause, slru_errno);
  			return false;
  		}
  
***************
*** 815,824 ****
--- 843,854 ----
  		{
  			slru_errcause = SLRU_CLOSE_FAILED;
  			slru_errno = errno;
+ 			TRACE_POSTGRESQL_SLRU_WRITEPAGE_PHYSICAL_DONE(false, slru_errcause, slru_errno);
  			return false;
  		}
  	}
  
+ 	TRACE_POSTGRESQL_SLRU_WRITEPAGE_PHYSICAL_DONE(true, -1, -1);
  	return true;
  }
  
Index: src/backend/executor/execScan.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/executor/execScan.c,v
retrieving revision 1.44
diff -c -c -r1.44 execScan.c
*** src/backend/executor/execScan.c	1 Jan 2009 17:23:41 -0000	1.44
--- src/backend/executor/execScan.c	2 Apr 2009 19:01:55 -0000
***************
*** 20,25 ****
--- 20,26 ----
  
  #include "executor/executor.h"
  #include "miscadmin.h"
+ #include "pg_trace.h"
  #include "utils/memutils.h"
  
  
***************
*** 60,65 ****
--- 61,68 ----
  	qual = node->ps.qual;
  	projInfo = node->ps.ps_ProjInfo;
  
+ 	TRACE_POSTGRESQL_EXECUTOR_SCAN((uintptr_t)node, ((Scan *)node->ps.plan)->scanrelid, (uintptr_t)accessMtd);
+ 
  	/*
  	 * If we have neither a qual to check nor a projection to do, just skip
  	 * all the overhead and return the raw scan tuple.
Index: src/backend/executor/nodeAgg.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/executor/nodeAgg.c,v
retrieving revision 1.164
diff -c -c -r1.164 nodeAgg.c
*** src/backend/executor/nodeAgg.c	1 Jan 2009 17:23:41 -0000	1.164
--- src/backend/executor/nodeAgg.c	2 Apr 2009 19:01:55 -0000
***************
*** 79,84 ****
--- 79,85 ----
  #include "parser/parse_agg.h"
  #include "parser/parse_coerce.h"
  #include "parser/parse_oper.h"
+ #include "pg_trace.h"
  #include "utils/acl.h"
  #include "utils/builtins.h"
  #include "utils/lsyscache.h"
***************
*** 814,819 ****
--- 815,822 ----
  	if (node->agg_done)
  		return NULL;
  
+ 	TRACE_POSTGRESQL_EXECUTOR_AGG((uintptr_t)node, ((Agg *) node->ss.ps.plan)->aggstrategy);
+ 
  	/*
  	 * Check to see if we're still projecting out tuples from a previous agg
  	 * tuple (because there is a function-returning-set in the projection
Index: src/backend/executor/nodeGroup.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/executor/nodeGroup.c,v
retrieving revision 1.73
diff -c -c -r1.73 nodeGroup.c
*** src/backend/executor/nodeGroup.c	1 Jan 2009 17:23:41 -0000	1.73
--- src/backend/executor/nodeGroup.c	2 Apr 2009 19:01:55 -0000
***************
*** 24,29 ****
--- 24,30 ----
  
  #include "executor/executor.h"
  #include "executor/nodeGroup.h"
+ #include "pg_trace.h"
  
  
  /*
***************
*** 49,54 ****
--- 50,57 ----
  	numCols = ((Group *) node->ss.ps.plan)->numCols;
  	grpColIdx = ((Group *) node->ss.ps.plan)->grpColIdx;
  
+ 	TRACE_POSTGRESQL_EXECUTOR_GROUP((uintptr_t)node, numCols);
+ 
  	/*
  	 * Check to see if we're still projecting out tuples from a previous group
  	 * tuple (because there is a function-returning-set in the projection
Index: src/backend/executor/nodeHash.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/executor/nodeHash.c,v
retrieving revision 1.118
diff -c -c -r1.118 nodeHash.c
*** src/backend/executor/nodeHash.c	21 Mar 2009 00:04:38 -0000	1.118
--- src/backend/executor/nodeHash.c	2 Apr 2009 19:01:55 -0000
***************
*** 33,38 ****
--- 33,39 ----
  #include "executor/nodeHashjoin.h"
  #include "miscadmin.h"
  #include "parser/parse_expr.h"
+ #include "pg_trace.h"
  #include "utils/dynahash.h"
  #include "utils/memutils.h"
  #include "utils/lsyscache.h"
***************
*** 79,84 ****
--- 80,87 ----
  	ExprContext *econtext;
  	uint32		hashvalue;
  
+ 	TRACE_POSTGRESQL_EXECUTOR_HASH_MULTI((uintptr_t)node);
+ 
  	/* must provide our own instrumentation support */
  	if (node->ps.instrument)
  		InstrStartNode(node->ps.instrument);
Index: src/backend/executor/nodeHashjoin.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/executor/nodeHashjoin.c,v
retrieving revision 1.98
diff -c -c -r1.98 nodeHashjoin.c
*** src/backend/executor/nodeHashjoin.c	21 Mar 2009 00:04:38 -0000	1.98
--- src/backend/executor/nodeHashjoin.c	2 Apr 2009 19:01:55 -0000
***************
*** 19,24 ****
--- 19,25 ----
  #include "executor/hashjoin.h"
  #include "executor/nodeHash.h"
  #include "executor/nodeHashjoin.h"
+ #include "pg_trace.h"
  #include "utils/memutils.h"
  
  
***************
*** 61,66 ****
--- 62,69 ----
  	uint32		hashvalue;
  	int			batchno;
  
+ 	TRACE_POSTGRESQL_EXECUTOR_HASHJOIN((uintptr_t)node);
+ 
  	/*
  	 * get information from HashJoin node
  	 */
Index: src/backend/executor/nodeLimit.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/executor/nodeLimit.c,v
retrieving revision 1.36
diff -c -c -r1.36 nodeLimit.c
*** src/backend/executor/nodeLimit.c	4 Mar 2009 10:55:00 -0000	1.36
--- src/backend/executor/nodeLimit.c	2 Apr 2009 19:01:55 -0000
***************
*** 23,28 ****
--- 23,29 ----
  
  #include "executor/executor.h"
  #include "executor/nodeLimit.h"
+ #include "pg_trace.h"
  
  static void recompute_limits(LimitState *node);
  
***************
*** 41,46 ****
--- 42,49 ----
  	TupleTableSlot *slot;
  	PlanState  *outerPlan;
  
+ 	TRACE_POSTGRESQL_EXECUTOR_LIMIT((uintptr_t)node);
+ 
  	/*
  	 * get information from the node
  	 */
Index: src/backend/executor/nodeMaterial.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/executor/nodeMaterial.c,v
retrieving revision 1.66
diff -c -c -r1.66 nodeMaterial.c
*** src/backend/executor/nodeMaterial.c	27 Mar 2009 18:30:21 -0000	1.66
--- src/backend/executor/nodeMaterial.c	2 Apr 2009 19:01:55 -0000
***************
*** 24,29 ****
--- 24,30 ----
  #include "executor/executor.h"
  #include "executor/nodeMaterial.h"
  #include "miscadmin.h"
+ #include "pg_trace.h"
  
  /* ----------------------------------------------------------------
   *		ExecMaterial
***************
*** 45,50 ****
--- 46,53 ----
  	bool		eof_tuplestore;
  	TupleTableSlot *slot;
  
+ 	TRACE_POSTGRESQL_EXECUTOR_MATERIAL((uintptr_t)node);
+ 
  	/*
  	 * get state info from node
  	 */
Index: src/backend/executor/nodeMergejoin.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/executor/nodeMergejoin.c,v
retrieving revision 1.94
diff -c -c -r1.94 nodeMergejoin.c
*** src/backend/executor/nodeMergejoin.c	1 Jan 2009 17:23:42 -0000	1.94
--- src/backend/executor/nodeMergejoin.c	2 Apr 2009 19:01:55 -0000
***************
*** 98,103 ****
--- 98,104 ----
  #include "executor/execdefs.h"
  #include "executor/nodeMergejoin.h"
  #include "miscadmin.h"
+ #include "pg_trace.h"
  #include "utils/acl.h"
  #include "utils/lsyscache.h"
  #include "utils/memutils.h"
***************
*** 565,570 ****
--- 566,573 ----
  	bool		doFillOuter;
  	bool		doFillInner;
  
+ 	TRACE_POSTGRESQL_EXECUTOR_MERGEJOIN((uintptr_t)node);
+ 
  	/*
  	 * get information from node
  	 */
Index: src/backend/executor/nodeNestloop.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/executor/nodeNestloop.c,v
retrieving revision 1.50
diff -c -c -r1.50 nodeNestloop.c
*** src/backend/executor/nodeNestloop.c	1 Jan 2009 17:23:42 -0000	1.50
--- src/backend/executor/nodeNestloop.c	2 Apr 2009 19:01:55 -0000
***************
*** 23,28 ****
--- 23,29 ----
  
  #include "executor/execdebug.h"
  #include "executor/nodeNestloop.h"
+ #include "pg_trace.h"
  #include "utils/memutils.h"
  
  
***************
*** 67,72 ****
--- 68,75 ----
  	List	   *otherqual;
  	ExprContext *econtext;
  
+ 	TRACE_POSTGRESQL_EXECUTOR_NESTLOOP((uintptr_t)node);
+ 
  	/*
  	 * get information from the node
  	 */
Index: src/backend/executor/nodeSetOp.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/executor/nodeSetOp.c,v
retrieving revision 1.28
diff -c -c -r1.28 nodeSetOp.c
*** src/backend/executor/nodeSetOp.c	1 Jan 2009 17:23:42 -0000	1.28
--- src/backend/executor/nodeSetOp.c	2 Apr 2009 19:01:55 -0000
***************
*** 46,51 ****
--- 46,52 ----
  
  #include "executor/executor.h"
  #include "executor/nodeSetOp.h"
+ #include "pg_trace.h"
  #include "utils/memutils.h"
  
  
***************
*** 196,201 ****
--- 197,204 ----
  	SetOp	   *plannode = (SetOp *) node->ps.plan;
  	TupleTableSlot *resultTupleSlot = node->ps.ps_ResultTupleSlot;
  
+ 	TRACE_POSTGRESQL_EXECUTOR_SETOP((uintptr_t)node);
+ 
  	/*
  	 * If the previously-returned tuple needs to be returned more than once,
  	 * keep returning it.
Index: src/backend/executor/nodeSort.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/executor/nodeSort.c,v
retrieving revision 1.63
diff -c -c -r1.63 nodeSort.c
*** src/backend/executor/nodeSort.c	1 Jan 2009 17:23:42 -0000	1.63
--- src/backend/executor/nodeSort.c	2 Apr 2009 19:01:55 -0000
***************
*** 18,23 ****
--- 18,24 ----
  #include "executor/execdebug.h"
  #include "executor/nodeSort.h"
  #include "miscadmin.h"
+ #include "pg_trace.h"
  #include "utils/tuplesort.h"
  
  
***************
*** 53,58 ****
--- 54,61 ----
  	dir = estate->es_direction;
  	tuplesortstate = (Tuplesortstate *) node->tuplesortstate;
  
+ 	TRACE_POSTGRESQL_EXECUTOR_SORT((uintptr_t)node, dir);
+ 
  	/*
  	 * If first time through, read all tuples from outer plan and pass them to
  	 * tuplesort.c. Subsequent calls just fetch tuples from tuplesort.
Index: src/backend/executor/nodeSubplan.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/executor/nodeSubplan.c,v
retrieving revision 1.96
diff -c -c -r1.96 nodeSubplan.c
*** src/backend/executor/nodeSubplan.c	1 Jan 2009 17:23:42 -0000	1.96
--- src/backend/executor/nodeSubplan.c	2 Apr 2009 19:01:55 -0000
***************
*** 24,29 ****
--- 24,30 ----
  #include "executor/nodeSubplan.h"
  #include "nodes/makefuncs.h"
  #include "optimizer/clauses.h"
+ #include "pg_trace.h"
  #include "utils/array.h"
  #include "utils/lsyscache.h"
  #include "utils/memutils.h"
***************
*** 92,97 ****
--- 93,100 ----
  	ExprContext *innerecontext = node->innerecontext;
  	TupleTableSlot *slot;
  
+ 	TRACE_POSTGRESQL_EXECUTOR_SUBPLAN_HASH((uintptr_t)node);
+ 
  	/* Shouldn't have any direct correlation Vars */
  	if (subplan->parParam != NIL || node->args != NIL)
  		elog(ERROR, "hashed subplan with direct correlation not supported");
***************
*** 227,232 ****
--- 230,237 ----
  	ListCell   *l;
  	ArrayBuildState *astate = NULL;
  
+ 	TRACE_POSTGRESQL_EXECUTOR_SUBPLAN_SCAN((uintptr_t)node);
+ 
  	/*
  	 * We are probably in a short-lived expression-evaluation context. Switch
  	 * to the per-query context for manipulating the child plan's chgParam,
Index: src/backend/executor/nodeUnique.c
===================================================================
RCS file: /cvsroot/pgsql/src/backend/executor/nodeUnique.c,v
retrieving revision 1.58
diff -c -c -r1.58 nodeUnique.c
*** src/backend/executor/nodeUnique.c	1 Jan 2009 17:23:42 -0000	1.58
--- src/backend/executor/nodeUnique.c	2 Apr 2009 19:01:55 -0000
***************
*** 35,40 ****
--- 35,41 ----
  
  #include "executor/executor.h"
  #include "executor/nodeUnique.h"
+ #include "pg_trace.h"
  #include "utils/memutils.h"
  
  
***************
*** 50,55 ****
--- 51,58 ----
  	TupleTableSlot *slot;
  	PlanState  *outerPlan;
  
+ 	TRACE_POSTGRESQL_EXECUTOR_UNIQUE((uintptr_t)node);
+ 
  	/*
  	 * get information from the node
  	 */
Index: src/backend/utils/probes.d
===================================================================
RCS file: /cvsroot/pgsql/src/backend/utils/probes.d,v
retrieving revision 1.9
diff -c -c -r1.9 probes.d
*** src/backend/utils/probes.d	23 Mar 2009 01:52:38 -0000	1.9
--- src/backend/utils/probes.d	2 Apr 2009 19:01:55 -0000
***************
*** 15,20 ****
--- 15,21 ----
   * in probe definitions, as they cause compilation errors on Mac OS X 10.5.
   */
  #define LocalTransactionId unsigned int
+ #define TransactionId unsigned int
  #define LWLockId int
  #define LWLockMode int
  #define LOCKMODE int
***************
*** 90,93 ****
--- 91,119 ----
  	probe xlog__switch();
  	probe wal__buffer__write__dirty__start();
  	probe wal__buffer__write__dirty__done();
+ 
+ 	probe slru__readpage__start(unsigned long, int, bool, TransactionId);
+ 	probe slru__readpage__done(int);
+ 	probe slru__readpage__readonly(unsigned long, int, TransactionId);
+ 	probe slru__writepage__start(unsigned long, int, int);
+ 	probe slru__writepage__done();
+ 	probe slru__readpage__physical__start(unsigned long, char *, int, int);
+ 	probe slru__readpage__physical__done(int, int, int);
+ 	probe slru__writepage__physical__start(unsigned long, int, int);
+ 	probe slru__writepage__physical__done(int, int, int);
+  
+ 	probe executor__scan(unsigned long, unsigned int, unsigned long);
+ 	probe executor__agg(unsigned long, int);
+ 	probe executor__group(unsigned long, int);
+ 	probe executor__hash__multi(unsigned long);
+ 	probe executor__hashjoin(unsigned long);
+ 	probe executor__limit(unsigned long);
+ 	probe executor__material(unsigned long);
+ 	probe executor__mergejoin(unsigned long);
+ 	probe executor__nestloop(unsigned long);
+ 	probe executor__setop(unsigned long);
+ 	probe executor__sort(unsigned long, int);
+ 	probe executor__subplan__hash(unsigned long);
+ 	probe executor__subplan__scan(unsigned long);
+ 	probe executor__unique(unsigned long);
  };
-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to