static void _outAggref(StringInfo str, Aggref *node) { WRITE_NODE_TYPE("AGGREF"); WRITE_OID_FIELD(aggfnoid); WRITE_OID_FIELD(aggtype); WRITE_NODE_FIELD(args); WRITE_UINT_FIELD(agglevelsup); WRITE_BOOL_FIELD(aggstar); WRITE_BOOL_FIELD(aggdistinct); WRITE_ENUM_FIELD(aggstage, AggStage); WRITE_NODE_FIELD(aggorder); }
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_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_NODE_FIELD(attr_encodings); }
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); }
static void _outCurrentOfExpr(StringInfo str, CurrentOfExpr *node) { WRITE_NODE_TYPE("CURRENTOFEXPR"); WRITE_STRING_FIELD(cursor_name); WRITE_UINT_FIELD(cvarno); WRITE_OID_FIELD(target_relid); }
void OutRelationRowLock(OUTFUNC_ARGS) { WRITE_LOCALS(RelationRowLock); WRITE_NODE_TYPE("RELATIONROWLOCK"); WRITE_OID_FIELD(relationId); WRITE_ENUM_FIELD(rowLockStrength, LockClauseStrength); }
void OutRelationShard(OUTFUNC_ARGS) { WRITE_LOCALS(RelationShard); WRITE_NODE_TYPE("RELATIONSHARD"); WRITE_OID_FIELD(relationId); WRITE_UINT64_FIELD(shardId); }
static void _outCreateDomainStmt(StringInfo str, CreateDomainStmt *node) { WRITE_NODE_TYPE("CREATEDOMAINSTMT"); WRITE_NODE_FIELD(domainname); WRITE_NODE_FIELD(typname); WRITE_NODE_FIELD(constraints); WRITE_OID_FIELD(domainOid); }
static void _outCreateQueueStmt(StringInfo str, CreateQueueStmt *node) { WRITE_NODE_TYPE("CREATEQUEUESTMT"); WRITE_STRING_FIELD(queue); WRITE_NODE_FIELD(options); /* List of DefElem nodes */ WRITE_OID_FIELD(queueOid); WRITE_NODE_FIELD(optids); /* List of oids for nodes */ }
void OutMultiTable(OUTFUNC_ARGS) { WRITE_LOCALS(MultiTable); WRITE_NODE_TYPE("MULTITABLE"); WRITE_OID_FIELD(relationId); WRITE_INT_FIELD(rangeTableId); OutMultiUnaryNodeFields(str, (const MultiUnaryNode *) node); }
static void _outConst(StringInfo str, Const *node) { WRITE_NODE_TYPE("CONST"); WRITE_OID_FIELD(consttype); WRITE_INT_FIELD(constlen); WRITE_BOOL_FIELD(constbyval); WRITE_BOOL_FIELD(constisnull); if (!node->constisnull) _outDatum(str, node->constvalue, node->constlen, node->constbyval); }
static void _outPartitionRule(StringInfo str, PartitionRule *node) { WRITE_NODE_TYPE("PARTITIONRULE"); WRITE_OID_FIELD(parruleid); WRITE_OID_FIELD(paroid); WRITE_OID_FIELD(parchildrelid); WRITE_OID_FIELD(parparentoid); WRITE_BOOL_FIELD(parisdefault); WRITE_STRING_FIELD(parname); WRITE_NODE_FIELD(parrangestart); WRITE_BOOL_FIELD(parrangestartincl); WRITE_NODE_FIELD(parrangeend); WRITE_BOOL_FIELD(parrangeendincl); WRITE_NODE_FIELD(parrangeevery); WRITE_NODE_FIELD(parlistvalues); WRITE_BINARY_FIELD(parruleord, sizeof(int2)); WRITE_NODE_FIELD(parreloptions); WRITE_OID_FIELD(partemplatespaceId); WRITE_NODE_FIELD(children); }
static void outLogicalIndexInfo(StringInfo str, LogicalIndexInfo *node) { WRITE_OID_FIELD(logicalIndexOid); WRITE_INT_FIELD(nColumns); WRITE_INT_ARRAY(indexKeys, nColumns, AttrNumber); WRITE_NODE_FIELD(indPred); WRITE_NODE_FIELD(indExprs); WRITE_BOOL_FIELD(indIsUnique); WRITE_ENUM_FIELD(indType, LogicalIndexType); WRITE_NODE_FIELD(partCons); WRITE_NODE_FIELD(defaultLevels); }
static void _outTypeName(StringInfo str, TypeName *node) { WRITE_NODE_TYPE("TYPENAME"); WRITE_NODE_FIELD(names); WRITE_OID_FIELD(typid); WRITE_BOOL_FIELD(timezone); WRITE_BOOL_FIELD(setof); WRITE_BOOL_FIELD(pct_type); WRITE_INT_FIELD(typmod); WRITE_NODE_FIELD(arrayBounds); WRITE_INT_FIELD(location); }
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_STRING_FIELD(cooked_default); WRITE_NODE_FIELD(constraints); WRITE_NODE_FIELD(encoding); }
static void _outTupleDescNode(StringInfo str, TupleDescNode *node) { int i; Assert(node->tuple->tdtypeid == RECORDOID); WRITE_NODE_TYPE("TUPLEDESCNODE"); WRITE_INT_FIELD(natts); WRITE_INT_FIELD(tuple->natts); for (i = 0; i < node->tuple->natts; i++) appendBinaryStringInfo(str, node->tuple->attrs[i], ATTRIBUTE_FIXED_PART_SIZE); Assert(node->tuple->constr == NULL); WRITE_OID_FIELD(tuple->tdtypeid); WRITE_INT_FIELD(tuple->tdtypmod); WRITE_INT_FIELD(tuple->tdqdtypmod); WRITE_BOOL_FIELD(tuple->tdhasoid); WRITE_INT_FIELD(tuple->tdrefcount); }
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; } }
static void _outRangeTblEntry(StringInfo str, RangeTblEntry *node) { WRITE_NODE_TYPE("RTE"); /* put alias + eref first to make dump more legible */ WRITE_NODE_FIELD(alias); WRITE_NODE_FIELD(eref); WRITE_ENUM_FIELD(rtekind, RTEKind); switch (node->rtekind) { case RTE_RELATION: case RTE_SPECIAL: WRITE_OID_FIELD(relid); break; case RTE_SUBQUERY: WRITE_NODE_FIELD(subquery); break; case RTE_CTE: WRITE_STRING_FIELD(ctename); WRITE_INT_FIELD(ctelevelsup); WRITE_BOOL_FIELD(self_reference); WRITE_NODE_FIELD(ctecoltypes); WRITE_NODE_FIELD(ctecoltypmods); break; case RTE_FUNCTION: WRITE_NODE_FIELD(funcexpr); WRITE_NODE_FIELD(funccoltypes); WRITE_NODE_FIELD(funccoltypmods); break; case RTE_TABLEFUNCTION: WRITE_NODE_FIELD(subquery); WRITE_NODE_FIELD(funcexpr); WRITE_NODE_FIELD(funccoltypes); WRITE_NODE_FIELD(funccoltypmods); WRITE_BYTEA_FIELD(funcuserdata); break; case RTE_VALUES: WRITE_NODE_FIELD(values_lists); break; case RTE_JOIN: WRITE_ENUM_FIELD(jointype, JoinType); WRITE_NODE_FIELD(joinaliasvars); break; case RTE_VOID: /*CDB*/ break; default: elog(ERROR, "unrecognized RTE kind: %d", (int) node->rtekind); break; } WRITE_BOOL_FIELD(inh); WRITE_BOOL_FIELD(inFromCl); WRITE_UINT_FIELD(requiredPerms); WRITE_OID_FIELD(checkAsUser); WRITE_BOOL_FIELD(forceDistRandom); /* * pseudocols is intentionally not serialized. It's only used in the planning * stage, so no need to transfer it to the QEs. */ }