summaryrefslogtreecommitdiff
path: root/src/include/executor/instrument.h
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2005-04-16 20:07:35 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2005-04-16 20:07:35 +0000
commitd8b1bf47918aafdc515729624ad1ec2db4b91d14 (patch)
tree666046eec1e911ef6593a5fe6db6b3e938607a73 /src/include/executor/instrument.h
parent85eee28ceca0814384392020c6c9a8269f213510 (diff)
downloadpostgresql-d8b1bf47918aafdc515729624ad1ec2db4b91d14.tar.gz
Create a new 'MultiExecProcNode' call API for plan nodes that don't
return just a single tuple at a time. Currently the only such node type is Hash, but I expect we will soon have indexscans that can return tuple bitmaps. A side benefit is that EXPLAIN ANALYZE now shows the correct tuple count for a Hash node.
Diffstat (limited to 'src/include/executor/instrument.h')
-rw-r--r--src/include/executor/instrument.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/include/executor/instrument.h b/src/include/executor/instrument.h
index 0540fd0da7..47899fbcc2 100644
--- a/src/include/executor/instrument.h
+++ b/src/include/executor/instrument.h
@@ -6,7 +6,7 @@
*
* Copyright (c) 2001-2005, PostgreSQL Global Development Group
*
- * $PostgreSQL: pgsql/src/include/executor/instrument.h,v 1.10 2005/03/25 21:57:59 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/executor/instrument.h,v 1.11 2005/04/16 20:07:35 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -60,9 +60,9 @@ typedef struct Instrumentation
/* Info about current plan cycle: */
bool running; /* TRUE if we've completed first tuple */
instr_time starttime; /* Start time of current iteration of node */
- instr_time counter; /* Accumulates runtime for this node */
+ instr_time counter; /* Accumulated runtime for this node */
double firsttuple; /* Time for first tuple of this cycle */
- double tuplecount; /* Tuples so far this cycle */
+ double tuplecount; /* Tuples emitted so far this cycle */
/* Accumulated statistics across all completed cycles: */
double startup; /* Total startup time (in seconds) */
double total; /* Total total time (in seconds) */
@@ -73,6 +73,7 @@ typedef struct Instrumentation
extern Instrumentation *InstrAlloc(int n);
extern void InstrStartNode(Instrumentation *instr);
extern void InstrStopNode(Instrumentation *instr, bool returnedTuple);
+extern void InstrStopNodeMulti(Instrumentation *instr, double nTuples);
extern void InstrEndLoop(Instrumentation *instr);
#endif /* INSTRUMENT_H */