Exemplo n.º 1
0
Arquivo: outfast.c Projeto: 50wu/gpdb
static void
_outAlterQueueStmt(StringInfo str, AlterQueueStmt *node)
{
	WRITE_NODE_TYPE("ALTERQUEUESTMT");

	WRITE_STRING_FIELD(queue);
	WRITE_NODE_FIELD(options); /* List of DefElem nodes */
}
Exemplo n.º 2
0
Arquivo: outfast.c Projeto: 50wu/gpdb
static void
_outCreateResourceGroupStmt(StringInfo str, CreateResourceGroupStmt *node)
{
	WRITE_NODE_TYPE("CREATERESOURCEGROUPSTMT");

	WRITE_STRING_FIELD(name);
	WRITE_NODE_FIELD(options); /* List of DefElem nodes */
}
Exemplo n.º 3
0
Arquivo: outfast.c Projeto: 50wu/gpdb
static void
_outCreateQueueStmt(StringInfo str, CreateQueueStmt *node)
{
	WRITE_NODE_TYPE("CREATEQUEUESTMT");

	WRITE_STRING_FIELD(queue);
	WRITE_NODE_FIELD(options); /* List of DefElem nodes */
}
Exemplo n.º 4
0
void
OutDistributedPlan(OUTFUNC_ARGS)
{
	WRITE_LOCALS(DistributedPlan);

	WRITE_NODE_TYPE("DISTRIBUTEDPLAN");

	WRITE_UINT64_FIELD(planId);
	WRITE_INT_FIELD(operation);
	WRITE_BOOL_FIELD(hasReturning);

	WRITE_NODE_FIELD(workerJob);
	WRITE_NODE_FIELD(masterQuery);
	WRITE_BOOL_FIELD(routerExecutable);
	WRITE_UINT64_FIELD(queryId);
	WRITE_NODE_FIELD(relationIdList);

	WRITE_NODE_FIELD(insertSelectSubquery);
	WRITE_NODE_FIELD(insertTargetList);
	WRITE_OID_FIELD(targetRelationId);

	WRITE_NODE_FIELD(subPlanList);

	WRITE_NODE_FIELD(planningError);
}
Exemplo n.º 5
0
void
OutTask(OUTFUNC_ARGS)
{
	WRITE_LOCALS(Task);
	WRITE_NODE_TYPE("TASK");

	WRITE_ENUM_FIELD(taskType, TaskType);
	WRITE_UINT64_FIELD(jobId);
	WRITE_UINT_FIELD(taskId);
	WRITE_STRING_FIELD(queryString);
	WRITE_UINT64_FIELD(anchorShardId);
	WRITE_NODE_FIELD(taskPlacementList);
	WRITE_NODE_FIELD(dependedTaskList);
	WRITE_UINT_FIELD(partitionId);
	WRITE_UINT_FIELD(upstreamTaskId);
	WRITE_NODE_FIELD(shardInterval);
	WRITE_BOOL_FIELD(assignmentConstrained);
	WRITE_NODE_FIELD(taskExecution);
	WRITE_BOOL_FIELD(upsertQuery);
	WRITE_CHAR_FIELD(replicationModel);
	WRITE_BOOL_FIELD(modifyWithSubquery);
	WRITE_NODE_FIELD(relationShardList);
	WRITE_NODE_FIELD(relationRowLockList);
	WRITE_NODE_FIELD(rowValuesLists);
}
Exemplo n.º 6
0
Arquivo: outfast.c Projeto: huor/gpdb
static void
_outColumnDef(StringInfo str, ColumnDef *node)
{
	WRITE_NODE_TYPE("COLUMNDEF");

	WRITE_STRING_FIELD(colname);
	WRITE_NODE_FIELD(typname);
	WRITE_INT_FIELD(inhcount);
	WRITE_BOOL_FIELD(is_local);
	WRITE_BOOL_FIELD(is_not_null);
	WRITE_INT_FIELD(attnum);
	WRITE_OID_FIELD(default_oid);
	WRITE_NODE_FIELD(raw_default);
	WRITE_BOOL_FIELD(default_is_null);
	WRITE_STRING_FIELD(cooked_default);
	WRITE_NODE_FIELD(constraints);
	WRITE_NODE_FIELD(encoding);
}
Exemplo n.º 7
0
static void
_outCreateExtensionStmt(StringInfo str, CreateExtensionStmt *node)
{
	WRITE_NODE_TYPE("CREATEEXTENSIONSTMT");
	WRITE_STRING_FIELD(extname);
	WRITE_BOOL_FIELD(if_not_exists);
	WRITE_NODE_FIELD(options);
	WRITE_ENUM_FIELD(create_ext_state, CreateExtensionState);
}
Exemplo n.º 8
0
static void
set_T_UniquePath(DebugGraph *graph, DebugNode *n, PlannerInfo *root,
                 Node *node)
{
    UniquePath *actual_node = (UniquePath*) node;
    set_T_Path(graph, n, root, node); /* inheritance */

    WRITE_NODE_FIELD(subpath);
}
Exemplo n.º 9
0
void
OutMultiPartition(OUTFUNC_ARGS)
{
	WRITE_LOCALS(MultiPartition);
	WRITE_NODE_TYPE("MULTIPARTITION");

	WRITE_NODE_FIELD(partitionColumn);

	OutMultiUnaryNodeFields(str, (const MultiUnaryNode *) node);
}
Exemplo n.º 10
0
void
OutMultiProject(OUTFUNC_ARGS)
{
	WRITE_LOCALS(MultiProject);
	WRITE_NODE_TYPE("MULTIPROJECT");

	WRITE_NODE_FIELD(columnList);

	OutMultiUnaryNodeFields(str, (const MultiUnaryNode *) node);
}
Exemplo n.º 11
0
void
OutMultiSelect(OUTFUNC_ARGS)
{
	WRITE_LOCALS(MultiSelect);
	WRITE_NODE_TYPE("MULTISELECT");

	WRITE_NODE_FIELD(selectClauseList);

	OutMultiUnaryNodeFields(str, (const MultiUnaryNode *) node);
}
Exemplo n.º 12
0
Arquivo: outfast.c Projeto: huor/gpdb
static void
_outSubqueryScan(StringInfo str, SubqueryScan *node)
{
	WRITE_NODE_TYPE("SUBQUERYSCAN");

	_outScanInfo(str, (Scan *) node);

	WRITE_NODE_FIELD(subplan);
	/* Planner-only: subrtable -- don't serialize. */
}
Exemplo n.º 13
0
Arquivo: outfast.c Projeto: huor/gpdb
static void
_outWindowKey(StringInfo str, WindowKey *node)
{
	WRITE_NODE_TYPE("WINDOWKEY");
	WRITE_INT_FIELD(numSortCols);

	WRITE_INT_ARRAY(sortColIdx, numSortCols, AttrNumber);
	WRITE_OID_ARRAY(sortOperators, numSortCols);
	WRITE_NODE_FIELD(frame);
}
Exemplo n.º 14
0
static void
_outCustomScan(StringInfo str, CustomScan *node)
{
	WRITE_NODE_TYPE("CUSTOMSCAN");

	_outScanInfo(str, (Scan *) node);

	WRITE_UINT_FIELD(flags);
	WRITE_NODE_FIELD(custom_plans);
	WRITE_NODE_FIELD(custom_exprs);
	WRITE_NODE_FIELD(custom_private);
	WRITE_NODE_FIELD(custom_scan_tlist);
	WRITE_BITMAPSET_FIELD(custom_relids);

	// serialize CustomScanMethods
	WRITE_STRING_FIELD(methods->CustomName);
	WRITE_STRING_FIELD(methods->LibraryName);
	WRITE_STRING_FIELD(methods->SymbolName);
}
Exemplo n.º 15
0
static void
set_T_HashPath(DebugGraph *graph, DebugNode *n, PlannerInfo *root,
               Node *node)
{
    HashPath *actual_node = (HashPath*) node;
    set_T_JoinPath(graph, n, root, node); /* inheritance */

    WRITE_NODE_FIELD(path_hashclauses);
    WRITE_INT_FIELD(num_batches);
}
Exemplo n.º 16
0
Arquivo: outfast.c Projeto: huor/gpdb
static void
_outAConst(StringInfo str, A_Const *node)
{
	WRITE_NODE_TYPE("A_CONST");

	_outValue(str, &(node->val));
	WRITE_NODE_FIELD(typname);
	WRITE_INT_FIELD(location);  /*CDB*/

}
Exemplo n.º 17
0
void
OutDistributedSubPlan(OUTFUNC_ARGS)
{
	WRITE_LOCALS(DistributedSubPlan);

	WRITE_NODE_TYPE("DISTRIBUTEDSUBPLAN");

	WRITE_UINT_FIELD(subPlanId);
	WRITE_NODE_FIELD(plan);
}
Exemplo n.º 18
0
static void
set_T_ParamPathInfo(DebugGraph *graph, DebugNode *n, PlannerInfo *root,
                    Node *node)
{
    ParamPathInfo *actual_node = (ParamPathInfo*) node;

    addRelids(n, "ppi_req_outer", root, actual_node->ppi_req_outer);
    WRITE_FLOAT_FIELD(ppi_rows, "%lf");

    WRITE_NODE_FIELD(ppi_clauses);
}
Exemplo n.º 19
0
void
OutMultiJoin(OUTFUNC_ARGS)
{
	WRITE_LOCALS(MultiJoin);
	WRITE_NODE_TYPE("MULTIJOIN");

	WRITE_NODE_FIELD(joinClauseList);
	WRITE_ENUM_FIELD(joinRuleType, JoinRuleType);
	WRITE_ENUM_FIELD(joinType, JoinType);

	OutMultiBinaryNodeFields(str, (const MultiBinaryNode *) node);
}
Exemplo n.º 20
0
Arquivo: outfast.c Projeto: huor/gpdb
static void
_outFuncExpr(StringInfo str, FuncExpr *node)
{
	WRITE_NODE_TYPE("FUNCEXPR");

	WRITE_OID_FIELD(funcid);
	WRITE_OID_FIELD(funcresulttype);
	WRITE_BOOL_FIELD(funcretset);
	WRITE_ENUM_FIELD(funcformat, CoercionForm);
	WRITE_NODE_FIELD(args);
	WRITE_BOOL_FIELD(is_tablefunc);
}
Exemplo n.º 21
0
Arquivo: outfast.c Projeto: huor/gpdb
static void
_outWindow(StringInfo str, Window *node)
{
	WRITE_NODE_TYPE("WINDOW");

	_outPlanInfo(str, (Plan *) node);

	WRITE_INT_FIELD(numPartCols);

	WRITE_INT_ARRAY(partColIdx, numPartCols, AttrNumber);

	WRITE_NODE_FIELD(windowKeys);
}
Exemplo n.º 22
0
Arquivo: outfast.c Projeto: huor/gpdb
static void
_outFlow(StringInfo str, Flow *node)
{

	WRITE_NODE_TYPE("FLOW");

	WRITE_ENUM_FIELD(flotype, FlowType);
	WRITE_ENUM_FIELD(req_move, Movement);
	WRITE_ENUM_FIELD(locustype, CdbLocusType);
	WRITE_INT_FIELD(segindex);

	/* This array format as in Group and Sort nodes. */
	WRITE_INT_FIELD(numSortCols);

	WRITE_INT_ARRAY(sortColIdx, numSortCols, AttrNumber);
	WRITE_OID_ARRAY(sortOperators, numSortCols);


	WRITE_NODE_FIELD(hashExpr);

	WRITE_NODE_FIELD(flow_before_req_move);
}
Exemplo n.º 23
0
static void
set_T_PlannerInfo(DebugGraph *graph, DebugNode *n,
                  PlannerInfo *ignored, Node *node)
{
    PlannerInfo *root = (PlannerInfo*) node;
    PlannerInfo *actual_node = (PlannerInfo*) node;

    WRITE_UINT_FIELD(query_level);

    WRITE_NODE_FIELD(parent_root);

    addRelids(n, "all_baserels", root, root->all_baserels);

    WRITE_NODE_FIELD(left_join_clauses);
    WRITE_NODE_FIELD(right_join_clauses);
    WRITE_NODE_FIELD(full_join_clauses);
    WRITE_NODE_FIELD(initial_rels);

    WRITE_FLOAT_FIELD(total_table_pages, "%lf");
    WRITE_FLOAT_FIELD(tuple_fraction, "%lf");
    WRITE_FLOAT_FIELD(limit_tuples, "%lf");
}
Exemplo n.º 24
0
Arquivo: outfast.c Projeto: huor/gpdb
static void
_outConstraint(StringInfo str, Constraint *node)
{
	WRITE_NODE_TYPE("CONSTRAINT");

	WRITE_STRING_FIELD(name);
	WRITE_OID_FIELD(conoid);

	WRITE_ENUM_FIELD(contype,ConstrType);

	switch (node->contype)
	{
		case CONSTR_PRIMARY:
		case CONSTR_UNIQUE:
			WRITE_NODE_FIELD(keys);
			WRITE_NODE_FIELD(options);
			WRITE_STRING_FIELD(indexspace);
			break;

		case CONSTR_CHECK:
		case CONSTR_DEFAULT:
			WRITE_NODE_FIELD(raw_expr);
			WRITE_STRING_FIELD(cooked_expr);
			break;

		case CONSTR_NOTNULL:
		case CONSTR_NULL:
		case CONSTR_ATTR_DEFERRABLE:
		case CONSTR_ATTR_NOT_DEFERRABLE:
		case CONSTR_ATTR_DEFERRED:
		case CONSTR_ATTR_IMMEDIATE:
			break;

		default:
			elog(WARNING,"serialization doesn't know what to do with this constraint");
			break;
	}
}
Exemplo n.º 25
0
Arquivo: outfast.c Projeto: huor/gpdb
static void
_outMotion(StringInfo str, Motion *node)
{

	WRITE_NODE_TYPE("MOTION");

	WRITE_INT_FIELD(motionID);
	WRITE_ENUM_FIELD(motionType, MotionType);
	WRITE_BOOL_FIELD(sendSorted);

	WRITE_NODE_FIELD(hashExpr);
	WRITE_NODE_FIELD(hashDataTypes);

	WRITE_INT_FIELD(numOutputSegs);
	WRITE_INT_ARRAY(outputSegIdx, numOutputSegs, int);

	WRITE_INT_FIELD(numSortCols);
	WRITE_INT_ARRAY(sortColIdx, numSortCols, AttrNumber);
	WRITE_OID_ARRAY(sortOperators, numSortCols);

	WRITE_INT_FIELD(segidColIdx);

	_outPlanInfo(str, (Plan *) node);
}
Exemplo n.º 26
0
static void
set_T_RelOptInfo(DebugGraph *graph, DebugNode *n, PlannerInfo *root,
                 Node *node)
{
    RelOptInfo *actual_node = (RelOptInfo*) node;

    addRelids(n, "relids", root, actual_node->relids);
    WRITE_FLOAT_FIELD(rows, "%lf");
    WRITE_INT_FIELD(width);
#	if PG_VERSION_NUM/100 >= 903
    addRelids(n, "lateral_relids", root, actual_node->lateral_relids);
    WRITE_BOOL_FIELD(consider_startup);
#	endif

    WRITE_UINT_FIELD(relid);
    newDebugEdgeByNode(graph, n,
                       getTablespace(graph, actual_node->reltablespace), "reltablespace");
    WRITE_INT_FIELD(rtekind);
    WRITE_FLOAT_FIELD(tuples, "%lf");
    WRITE_FLOAT_FIELD(allvisfrac, "%lf");
    WRITE_UINT_FIELD(pages);

    WRITE_NODE_FIELD(pathlist);
    WRITE_NODE_FIELD(cheapest_startup_path);
    WRITE_NODE_FIELD(cheapest_total_path);
    WRITE_NODE_FIELD(baserestrictinfo);

    WRITE_FLOAT_FIELD(baserestrictcost.startup, "%lf");
    WRITE_FLOAT_FIELD(baserestrictcost.per_tuple, "%lf");

    WRITE_NODE_FIELD(joininfo);
    WRITE_BOOL_FIELD(has_eclass_joins);

    /* pseudo attribute. Is there more than one root per reloptinfo? */
    newDebugEdgeByNode(graph, n, getNode(graph, root, (Node*)root), "_root");
}
Exemplo n.º 27
0
static void
_outSort(StringInfo str, Sort *node)
{

	WRITE_NODE_TYPE("SORT");

	_outPlanInfo(str, (Plan *) node);

	WRITE_INT_FIELD(numCols);
	WRITE_INT_ARRAY(sortColIdx, node->numCols, AttrNumber);
	WRITE_OID_ARRAY(sortOperators, node->numCols);
	WRITE_BOOL_ARRAY(nullsFirst, node->numCols);

    /* CDB */
	WRITE_NODE_FIELD(limitOffset);
	WRITE_NODE_FIELD(limitCount);
    WRITE_BOOL_FIELD(noduplicates);

	WRITE_ENUM_FIELD(share_type, ShareType);
	WRITE_INT_FIELD(share_id);
	WRITE_INT_FIELD(driver_slice);
	WRITE_INT_FIELD(nsharer);
	WRITE_INT_FIELD(nsharer_xslice);
}
Exemplo n.º 28
0
void
OutMapMergeJob(OUTFUNC_ARGS)
{
	WRITE_LOCALS(MapMergeJob);
	int arrayLength = node->sortedShardIntervalArrayLength;
	int i;

	WRITE_NODE_TYPE("MAPMERGEJOB");

	OutJobFields(str, (Job *) node);
	WRITE_NODE_FIELD(reduceQuery);
	WRITE_ENUM_FIELD(partitionType, PartitionType);
	WRITE_NODE_FIELD(partitionColumn);
	WRITE_UINT_FIELD(partitionCount);
	WRITE_INT_FIELD(sortedShardIntervalArrayLength);

	for (i = 0; i < arrayLength; ++i)
	{
		outNode(str, node->sortedShardIntervalArray[i]);
	}

	WRITE_NODE_FIELD(mapTaskList);
	WRITE_NODE_FIELD(mergeTaskList);
}
Exemplo n.º 29
0
Arquivo: outfast.c Projeto: huor/gpdb
/*
 * print the basic stuff of all nodes that inherit from Plan
 */
static void
_outPlanInfo(StringInfo str, Plan *node)
{
	if (print_variable_fields)
	{
		WRITE_INT_FIELD(plan_node_id);
		WRITE_INT_FIELD(plan_parent_node_id);

		WRITE_FLOAT_FIELD(startup_cost, "%.2f");
		WRITE_FLOAT_FIELD(total_cost, "%.2f");
		WRITE_FLOAT_FIELD(plan_rows, "%.0f");
		WRITE_INT_FIELD(plan_width);
	}

	WRITE_NODE_FIELD(targetlist);
	WRITE_NODE_FIELD(qual);

	WRITE_BITMAPSET_FIELD(extParam);
	WRITE_BITMAPSET_FIELD(allParam);

	WRITE_INT_FIELD(nParamExec);

	if (print_variable_fields)
	{
		WRITE_NODE_FIELD(flow);
		WRITE_INT_FIELD(dispatch);
		WRITE_BOOL_FIELD(directDispatch.isDirectDispatch);
		WRITE_NODE_FIELD(directDispatch.contentIds);

		WRITE_INT_FIELD(nMotionNodes);
		WRITE_INT_FIELD(nInitPlans);

		WRITE_NODE_FIELD(sliceTable);
	}

    WRITE_NODE_FIELD(lefttree);
    WRITE_NODE_FIELD(righttree);
    WRITE_NODE_FIELD(initPlan);

	if (print_variable_fields)
	{
		WRITE_UINT64_FIELD(operatorMemKB);
	}
}
Exemplo n.º 30
0
Arquivo: outfast.c Projeto: huor/gpdb
static void
_outCreateStmt(StringInfo str, CreateStmt *node)
{
	WRITE_NODE_TYPE("CREATESTMT");

	WRITE_NODE_FIELD(relation);
	WRITE_NODE_FIELD(tableElts);
	WRITE_NODE_FIELD(inhRelations);
	WRITE_NODE_FIELD(inhOids);
	WRITE_INT_FIELD(parentOidCount);
	WRITE_NODE_FIELD(constraints);
	WRITE_NODE_FIELD(options);
	WRITE_ENUM_FIELD(oncommit, OnCommitAction);
	WRITE_STRING_FIELD(tablespacename);
	WRITE_NODE_FIELD(distributedBy);
	WRITE_OID_FIELD(oidInfo.relOid);
	WRITE_OID_FIELD(oidInfo.comptypeOid);
	WRITE_OID_FIELD(oidInfo.toastOid);
	WRITE_OID_FIELD(oidInfo.toastIndexOid);
	WRITE_OID_FIELD(oidInfo.toastComptypeOid);
	WRITE_OID_FIELD(oidInfo.aosegOid);
	WRITE_OID_FIELD(oidInfo.aosegIndexOid);
	WRITE_OID_FIELD(oidInfo.aosegComptypeOid);
	WRITE_OID_FIELD(oidInfo.aovisimapOid);
	WRITE_OID_FIELD(oidInfo.aovisimapIndexOid);
	WRITE_OID_FIELD(oidInfo.aovisimapComptypeOid);
	WRITE_OID_FIELD(oidInfo.aoblkdirOid);
	WRITE_OID_FIELD(oidInfo.aoblkdirIndexOid);
	WRITE_OID_FIELD(oidInfo.aoblkdirComptypeOid);
	WRITE_CHAR_FIELD(relKind);
	WRITE_CHAR_FIELD(relStorage);
	/* policy omitted */
	/* postCreate - for analysis, QD only */
	/* deferredStmts - for analysis, QD only */
	WRITE_BOOL_FIELD(is_part_child);
	WRITE_BOOL_FIELD(is_add_part);
	WRITE_BOOL_FIELD(is_split_part);
	WRITE_OID_FIELD(ownerid);
	WRITE_BOOL_FIELD(buildAoBlkdir);
	WRITE_BOOL_FIELD(is_error_table);
	WRITE_NODE_FIELD(attr_encodings);
}