31InstrAlloc(
int n,
int instrument_options,
bool async_mode)
44 for (
i = 0;
i < n;
i++)
72 elog(
ERROR,
"InstrStartNode called twice in a row");
96 elog(
ERROR,
"InstrStopNode called without start");
125 if (instr->
async_mode && save_tuplecount < 1.0)
149 elog(
ERROR,
"InstrEndLoop called on running node");
155 instr->
total += totaltime;
212 memset(walusage, 0,
sizeof(
WalUsage));
#define INSTR_TIME_SET_CURRENT(t)
#define INSTR_TIME_ADD(x, y)
#define INSTR_TIME_IS_ZERO(t)
#define INSTR_TIME_GET_DOUBLE(t)
#define INSTR_TIME_SET_CURRENT_LAZY(t)
#define INSTR_TIME_SET_ZERO(t)
#define INSTR_TIME_ACCUM_DIFF(x, y, z)
void InstrUpdateTupleCount(Instrumentation *instr, double nTuples)
void InstrAccumParallelQuery(BufferUsage *bufusage, WalUsage *walusage)
void InstrEndLoop(Instrumentation *instr)
Instrumentation * InstrAlloc(int n, int instrument_options, bool async_mode)
static void BufferUsageAdd(BufferUsage *dst, const BufferUsage *add)
void InstrAggNode(Instrumentation *dst, Instrumentation *add)
static BufferUsage save_pgBufferUsage
void InstrEndParallelQuery(BufferUsage *bufusage, WalUsage *walusage)
static WalUsage save_pgWalUsage
static void WalUsageAdd(WalUsage *dst, WalUsage *add)
void WalUsageAccumDiff(WalUsage *dst, const WalUsage *add, const WalUsage *sub)
void InstrStartParallelQuery(void)
BufferUsage pgBufferUsage
void InstrInit(Instrumentation *instr, int instrument_options)
void BufferUsageAccumDiff(BufferUsage *dst, const BufferUsage *add, const BufferUsage *sub)
void InstrStartNode(Instrumentation *instr)
void InstrStopNode(Instrumentation *instr, double nTuples)
void * palloc0(Size size)
instr_time local_blk_read_time
int64 shared_blks_dirtied
instr_time temp_blk_write_time
instr_time shared_blk_read_time
instr_time shared_blk_write_time
instr_time temp_blk_read_time
instr_time local_blk_write_time
int64 shared_blks_written
BufferUsage bufusage_start