mirror of
https://github.com/postgres/postgres.git
synced 2025-09-02 04:21:28 +03:00
Add support for additional DTrace probes.
Robert Lor
This commit is contained in:
@@ -12,7 +12,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/executor/execScan.c,v 1.44 2009/01/01 17:23:41 momjian Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/executor/execScan.c,v 1.45 2009/04/02 19:14:33 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -20,6 +20,7 @@
|
||||
|
||||
#include "executor/executor.h"
|
||||
#include "miscadmin.h"
|
||||
#include "pg_trace.h"
|
||||
#include "utils/memutils.h"
|
||||
|
||||
|
||||
@@ -60,6 +61,8 @@ ExecScan(ScanState *node,
|
||||
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.
|
||||
|
@@ -61,7 +61,7 @@
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/executor/nodeAgg.c,v 1.164 2009/01/01 17:23:41 momjian Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/executor/nodeAgg.c,v 1.165 2009/04/02 19:14:33 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -79,6 +79,7 @@
|
||||
#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,6 +815,8 @@ ExecAgg(AggState *node)
|
||||
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
|
||||
|
@@ -15,7 +15,7 @@
|
||||
* locate group boundaries.
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/executor/nodeGroup.c,v 1.73 2009/01/01 17:23:41 momjian Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/executor/nodeGroup.c,v 1.74 2009/04/02 19:14:33 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -24,6 +24,7 @@
|
||||
|
||||
#include "executor/executor.h"
|
||||
#include "executor/nodeGroup.h"
|
||||
#include "pg_trace.h"
|
||||
|
||||
|
||||
/*
|
||||
@@ -49,6 +50,8 @@ ExecGroup(GroupState *node)
|
||||
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
|
||||
|
@@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/executor/nodeHash.c,v 1.118 2009/03/21 00:04:38 tgl Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/executor/nodeHash.c,v 1.119 2009/04/02 19:14:33 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -33,6 +33,7 @@
|
||||
#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,6 +80,8 @@ MultiExecHash(HashState *node)
|
||||
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);
|
||||
|
@@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/executor/nodeHashjoin.c,v 1.98 2009/03/21 00:04:38 tgl Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/executor/nodeHashjoin.c,v 1.99 2009/04/02 19:14:33 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -19,6 +19,7 @@
|
||||
#include "executor/hashjoin.h"
|
||||
#include "executor/nodeHash.h"
|
||||
#include "executor/nodeHashjoin.h"
|
||||
#include "pg_trace.h"
|
||||
#include "utils/memutils.h"
|
||||
|
||||
|
||||
@@ -61,6 +62,8 @@ ExecHashJoin(HashJoinState *node)
|
||||
uint32 hashvalue;
|
||||
int batchno;
|
||||
|
||||
TRACE_POSTGRESQL_EXECUTOR_HASHJOIN((uintptr_t)node);
|
||||
|
||||
/*
|
||||
* get information from HashJoin node
|
||||
*/
|
||||
|
@@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/executor/nodeLimit.c,v 1.36 2009/03/04 10:55:00 petere Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/executor/nodeLimit.c,v 1.37 2009/04/02 19:14:33 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -23,6 +23,7 @@
|
||||
|
||||
#include "executor/executor.h"
|
||||
#include "executor/nodeLimit.h"
|
||||
#include "pg_trace.h"
|
||||
|
||||
static void recompute_limits(LimitState *node);
|
||||
|
||||
@@ -41,6 +42,8 @@ ExecLimit(LimitState *node)
|
||||
TupleTableSlot *slot;
|
||||
PlanState *outerPlan;
|
||||
|
||||
TRACE_POSTGRESQL_EXECUTOR_LIMIT((uintptr_t)node);
|
||||
|
||||
/*
|
||||
* get information from the node
|
||||
*/
|
||||
|
@@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/executor/nodeMaterial.c,v 1.66 2009/03/27 18:30:21 tgl Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/executor/nodeMaterial.c,v 1.67 2009/04/02 19:14:33 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -24,6 +24,7 @@
|
||||
#include "executor/executor.h"
|
||||
#include "executor/nodeMaterial.h"
|
||||
#include "miscadmin.h"
|
||||
#include "pg_trace.h"
|
||||
|
||||
/* ----------------------------------------------------------------
|
||||
* ExecMaterial
|
||||
@@ -45,6 +46,8 @@ ExecMaterial(MaterialState *node)
|
||||
bool eof_tuplestore;
|
||||
TupleTableSlot *slot;
|
||||
|
||||
TRACE_POSTGRESQL_EXECUTOR_MATERIAL((uintptr_t)node);
|
||||
|
||||
/*
|
||||
* get state info from node
|
||||
*/
|
||||
|
@@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/executor/nodeMergejoin.c,v 1.94 2009/01/01 17:23:42 momjian Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/executor/nodeMergejoin.c,v 1.95 2009/04/02 19:14:33 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -98,6 +98,7 @@
|
||||
#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,6 +566,8 @@ ExecMergeJoin(MergeJoinState *node)
|
||||
bool doFillOuter;
|
||||
bool doFillInner;
|
||||
|
||||
TRACE_POSTGRESQL_EXECUTOR_MERGEJOIN((uintptr_t)node);
|
||||
|
||||
/*
|
||||
* get information from node
|
||||
*/
|
||||
|
@@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/executor/nodeNestloop.c,v 1.50 2009/01/01 17:23:42 momjian Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/executor/nodeNestloop.c,v 1.51 2009/04/02 19:14:33 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -23,6 +23,7 @@
|
||||
|
||||
#include "executor/execdebug.h"
|
||||
#include "executor/nodeNestloop.h"
|
||||
#include "pg_trace.h"
|
||||
#include "utils/memutils.h"
|
||||
|
||||
|
||||
@@ -67,6 +68,8 @@ ExecNestLoop(NestLoopState *node)
|
||||
List *otherqual;
|
||||
ExprContext *econtext;
|
||||
|
||||
TRACE_POSTGRESQL_EXECUTOR_NESTLOOP((uintptr_t)node);
|
||||
|
||||
/*
|
||||
* get information from the node
|
||||
*/
|
||||
|
@@ -37,7 +37,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/executor/nodeSetOp.c,v 1.28 2009/01/01 17:23:42 momjian Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/executor/nodeSetOp.c,v 1.29 2009/04/02 19:14:33 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -46,6 +46,7 @@
|
||||
|
||||
#include "executor/executor.h"
|
||||
#include "executor/nodeSetOp.h"
|
||||
#include "pg_trace.h"
|
||||
#include "utils/memutils.h"
|
||||
|
||||
|
||||
@@ -196,6 +197,8 @@ ExecSetOp(SetOpState *node)
|
||||
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.
|
||||
|
@@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/executor/nodeSort.c,v 1.63 2009/01/01 17:23:42 momjian Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/executor/nodeSort.c,v 1.64 2009/04/02 19:14:33 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -18,6 +18,7 @@
|
||||
#include "executor/execdebug.h"
|
||||
#include "executor/nodeSort.h"
|
||||
#include "miscadmin.h"
|
||||
#include "pg_trace.h"
|
||||
#include "utils/tuplesort.h"
|
||||
|
||||
|
||||
@@ -53,6 +54,8 @@ ExecSort(SortState *node)
|
||||
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.
|
||||
|
@@ -7,7 +7,7 @@
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/executor/nodeSubplan.c,v 1.96 2009/01/01 17:23:42 momjian Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/executor/nodeSubplan.c,v 1.97 2009/04/02 19:14:33 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -24,6 +24,7 @@
|
||||
#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,6 +93,8 @@ ExecHashSubPlan(SubPlanState *node,
|
||||
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,6 +230,8 @@ ExecScanSubPlan(SubPlanState *node,
|
||||
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,
|
||||
|
@@ -16,7 +16,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/executor/nodeUnique.c,v 1.58 2009/01/01 17:23:42 momjian Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/executor/nodeUnique.c,v 1.59 2009/04/02 19:14:33 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -35,6 +35,7 @@
|
||||
|
||||
#include "executor/executor.h"
|
||||
#include "executor/nodeUnique.h"
|
||||
#include "pg_trace.h"
|
||||
#include "utils/memutils.h"
|
||||
|
||||
|
||||
@@ -50,6 +51,8 @@ ExecUnique(UniqueState *node)
|
||||
TupleTableSlot *slot;
|
||||
PlanState *outerPlan;
|
||||
|
||||
TRACE_POSTGRESQL_EXECUTOR_UNIQUE((uintptr_t)node);
|
||||
|
||||
/*
|
||||
* get information from the node
|
||||
*/
|
||||
|
Reference in New Issue
Block a user