/* * Method for reporting DynamicIndexScan progress to gpperfmon */ void initGpmonPktForDynamicIndexScan(Plan *planNode, gpmon_packet_t *gpmon_pkt, EState *estate) { Assert(planNode != NULL && gpmon_pkt != NULL && IsA(planNode, DynamicIndexScan)); InitPlanNodeGpmonPkt(planNode, gpmon_pkt, estate); }
void initGpmonPktForPartitionSelector(Plan *planNode, gpmon_packet_t *gpmon_pkt, EState *estate) { Assert(planNode != NULL && gpmon_pkt != NULL && IsA(planNode, PartitionSelector)); InitPlanNodeGpmonPkt(planNode, gpmon_pkt, estate); }
void initGpmonPktForLimit(Plan *planNode, gpmon_packet_t *gpmon_pkt, EState *estate) { Assert(planNode != NULL && gpmon_pkt != NULL && IsA(planNode, Limit)); { Assert(GPMON_LIMIT_TOTAL <= (int)GPMON_QEXEC_M_COUNT); InitPlanNodeGpmonPkt(planNode, gpmon_pkt, estate, PMNT_Limit, (int64)0, NULL); } }
/* Tracing execution for GP Monitor. */ void initGpmonPktForDML(Plan *planNode, gpmon_packet_t *gpmon_pkt, EState *estate) { Assert(planNode != NULL && gpmon_pkt != NULL && IsA(planNode, DML)); PerfmonNodeType type = PMNT_DML; InitPlanNodeGpmonPkt(planNode, gpmon_pkt, estate, type, (int64)planNode->plan_rows, NULL); }
void initGpmonPktForMaterial(Plan *planNode, gpmon_packet_t *gpmon_pkt, EState *estate) { Assert(planNode != NULL && gpmon_pkt != NULL && IsA(planNode, Material)); { Assert(GPMON_MATERIAL_TOTAL <= (int)GPMON_QEXEC_M_COUNT); InitPlanNodeGpmonPkt(planNode, gpmon_pkt, estate, PMNT_Materialize, (int64)planNode->plan_rows, NULL); } }
void initGpmonPktForRepeat(Plan *planNode, gpmon_packet_t *gpmon_pkt, EState *estate) { Assert(planNode != NULL && gpmon_pkt != NULL && IsA(planNode, Repeat)); { Assert(GPMON_REPEAT_TOTAL <= (int)GPMON_QEXEC_M_COUNT); InitPlanNodeGpmonPkt(planNode, gpmon_pkt, estate, PMNT_Repeat, (int64) planNode->plan_rows, NULL); } }
void initGpmonPktForShareInputScan(Plan *planNode, gpmon_packet_t *gpmon_pkt, EState *estate) { Assert(planNode != NULL && gpmon_pkt != NULL && IsA(planNode, ShareInputScan)); { Assert(GPMON_SHAREINPUT_TOTAL <= (int)GPMON_QEXEC_M_COUNT); InitPlanNodeGpmonPkt(planNode, gpmon_pkt, estate, PMNT_SharedScan, (int64)planNode->plan_rows, NULL); } }
void initGpmonPktForUnique(Plan *planNode, gpmon_packet_t *gpmon_pkt, EState *estate) { Assert(planNode != NULL && gpmon_pkt != NULL && IsA(planNode, Unique)); { Assert(GPMON_UNIQUE_TOTAL <= (int)GPMON_QEXEC_M_COUNT); InitPlanNodeGpmonPkt(planNode, gpmon_pkt, estate, PMNT_Unique, (int64)planNode->plan_rows, NULL); } }
void initGpmonPktForDynamicTableScan(Plan *planNode, gpmon_packet_t *gpmon_pkt, EState *estate) { Assert(planNode != NULL && gpmon_pkt != NULL && IsA(planNode, DynamicTableScan)); { RangeTblEntry *rte = rt_fetch(((Scan *)planNode)->scanrelid, estate->es_range_table); char schema_rel_name[SCAN_REL_NAME_BUF_SIZE] = {0}; Assert(GPMON_DYNAMICTABLESCAN_TOTAL <= (int)GPMON_QEXEC_M_COUNT); InitPlanNodeGpmonPkt(planNode, gpmon_pkt, estate, PMNT_DynamicTableScan, (int64) planNode->plan_rows, GetScanRelNameGpmon(rte->relid, schema_rel_name)); } }
void initGpmonPktForSubqueryScan(Plan *planNode, gpmon_packet_t *gpmon_pkt, EState *estate) { RangeTblEntry *rte; Assert(planNode != NULL && gpmon_pkt != NULL && IsA(planNode, SubqueryScan)); rte = rt_fetch(((SubqueryScan *)planNode)->scan.scanrelid, estate->es_range_table); if (rte && rte->rtekind != RTE_VOID) { InitPlanNodeGpmonPkt(planNode, gpmon_pkt, estate, PMNT_SubqueryScan, (int64)planNode->plan_rows, rte->eref->aliasname); } }
void initGpmonPktForIndexScan(Plan *planNode, gpmon_packet_t *gpmon_pkt, EState *estate) { Assert(planNode != NULL && gpmon_pkt != NULL && IsA(planNode, IndexScan)); { char *relname = get_rel_name(((IndexScan *)planNode)->indexid); Assert(GPMON_INDEXSCAN_TOTAL <= (int) GPMON_QEXEC_M_COUNT); InitPlanNodeGpmonPkt(planNode, gpmon_pkt, estate, PMNT_IndexScan, (int64)planNode->plan_rows, relname); if (relname) pfree(relname); } }
void initGpmonPktForBitmapIndexScan(Plan *planNode, gpmon_packet_t *gpmon_pkt, EState *estate) { Assert(NULL != planNode && NULL != gpmon_pkt && IsA(planNode, BitmapIndexScan)); { char *relname = get_rel_name(((BitmapIndexScan *)planNode)->indexid); Assert(GPMON_BITMAPINDEXSCAN_TOTAL <= (int)GPMON_QEXEC_M_COUNT); InitPlanNodeGpmonPkt(planNode, gpmon_pkt, estate, PMNT_BitmapIndexScan, (int64)planNode->plan_rows, relname); if (NULL != relname) { pfree(relname); } } }