mirror of
https://github.com/postgres/postgres.git
synced 2026-02-11 14:53:31 -05:00
file portability/instr_time.h, and add a couple more macros to eliminate some abstraction leakage we formerly had. Also update psql to use this header instead of its own copy of nearly the same code. This commit in itself is just code cleanup and shouldn't change anything. It lays some groundwork for the upcoming function-stats patch, though.
39 lines
1.4 KiB
C
39 lines
1.4 KiB
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* instrument.h
|
|
* definitions for run-time statistics collection
|
|
*
|
|
*
|
|
* Copyright (c) 2001-2008, PostgreSQL Global Development Group
|
|
*
|
|
* $PostgreSQL: pgsql/src/include/executor/instrument.h,v 1.19 2008/05/14 19:10:29 tgl Exp $
|
|
*
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
#ifndef INSTRUMENT_H
|
|
#define INSTRUMENT_H
|
|
|
|
#include "portability/instr_time.h"
|
|
|
|
|
|
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; /* Accumulated runtime for this node */
|
|
double firsttuple; /* Time for first tuple of 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) */
|
|
double ntuples; /* Total tuples produced */
|
|
double nloops; /* # of run cycles for this node */
|
|
} Instrumentation;
|
|
|
|
extern Instrumentation *InstrAlloc(int n);
|
|
extern void InstrStartNode(Instrumentation *instr);
|
|
extern void InstrStopNode(Instrumentation *instr, double nTuples);
|
|
extern void InstrEndLoop(Instrumentation *instr);
|
|
|
|
#endif /* INSTRUMENT_H */
|