MCPcopy Create free account
hub / github.com/apache/cloudberry / PlanCacheComputeResultDesc

Function PlanCacheComputeResultDesc

src/backend/utils/cache/plancache.c:2019–2046  ·  view source on GitHub ↗

* PlanCacheComputeResultDesc: given a list of analyzed-and-rewritten Queries, * determine the result tupledesc it will produce. Returns NULL if the * execution will not return tuples. * * Note: the result is created or copied into current memory context. */

Source from the content-addressed store, hash-verified

2017 * Note: the result is created or copied into current memory context.
2018 */
2019static TupleDesc
2020PlanCacheComputeResultDesc(List *stmt_list)
2021{
2022 Query *query;
2023
2024 switch (ChoosePortalStrategy(stmt_list))
2025 {
2026 case PORTAL_ONE_SELECT:
2027 case PORTAL_ONE_MOD_WITH:
2028 query = linitial_node(Query, stmt_list);
2029 return ExecCleanTypeFromTL(query->targetList);
2030
2031 case PORTAL_ONE_RETURNING:
2032 query = QueryListGetPrimaryStmt(stmt_list);
2033 Assert(query->returningList);
2034 return ExecCleanTypeFromTL(query->returningList);
2035
2036 case PORTAL_UTIL_SELECT:
2037 query = linitial_node(Query, stmt_list);
2038 Assert(query->utilityStmt);
2039 return UtilityTupleDescriptor(query->utilityStmt);
2040
2041 case PORTAL_MULTI_QUERY:
2042 /* will not return tuples */
2043 break;
2044 }
2045 return NULL;
2046}
2047
2048/*
2049 * PlanCacheRelCallback

Callers 2

CompleteCachedPlanFunction · 0.85
RevalidateCachedQueryFunction · 0.85

Calls 4

ChoosePortalStrategyFunction · 0.85
ExecCleanTypeFromTLFunction · 0.85
QueryListGetPrimaryStmtFunction · 0.85
UtilityTupleDescriptorFunction · 0.85

Tested by

no test coverage detected