diff options
| author | Tom Lane <tgl@sss.pgh.pa.us> | 2005-04-16 20:07:35 +0000 |
|---|---|---|
| committer | Tom Lane <tgl@sss.pgh.pa.us> | 2005-04-16 20:07:35 +0000 |
| commit | d8b1bf47918aafdc515729624ad1ec2db4b91d14 (patch) | |
| tree | 666046eec1e911ef6593a5fe6db6b3e938607a73 /src/include/executor/instrument.h | |
| parent | 85eee28ceca0814384392020c6c9a8269f213510 (diff) | |
| download | postgresql-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.h | 7 |
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 */ |
