}
}
}
-
-static void
-_jumbleRangeTblEntry(JumbleState *jstate, Node *node)
-{
- RangeTblEntry *expr = (RangeTblEntry *) node;
-
- JUMBLE_FIELD(rtekind);
- switch (expr->rtekind)
- {
- case RTE_RELATION:
- JUMBLE_FIELD(relid);
- JUMBLE_FIELD(inh);
- JUMBLE_NODE(tablesample);
- break;
- case RTE_SUBQUERY:
- JUMBLE_NODE(subquery);
- break;
- case RTE_JOIN:
- JUMBLE_FIELD(jointype);
- break;
- case RTE_FUNCTION:
- JUMBLE_NODE(functions);
- JUMBLE_FIELD(funcordinality);
- break;
- case RTE_TABLEFUNC:
- JUMBLE_NODE(tablefunc);
- break;
- case RTE_VALUES:
- JUMBLE_NODE(values_lists);
- break;
- case RTE_CTE:
-
- /*
- * Depending on the CTE name here isn't ideal, but it's the only
- * info we have to identify the referenced WITH item.
- */
- JUMBLE_STRING(ctename);
- JUMBLE_FIELD(ctelevelsup);
- break;
- case RTE_NAMEDTUPLESTORE:
- JUMBLE_STRING(enrname);
- break;
- case RTE_RESULT:
- break;
- default:
- elog(ERROR, "unrecognized RTE kind: %d", (int) expr->rtekind);
- break;
- }
-}
typedef struct RangeTblEntry
{
- pg_node_attr(custom_read_write, custom_query_jumble)
+ pg_node_attr(custom_read_write)
NodeTag type;
/* inheritance requested? */
bool inh;
/* relation kind (see pg_class.relkind) */
- char relkind;
+ char relkind pg_node_attr(query_jumble_ignore);
/* lock level that query requires on the rel */
- int rellockmode;
+ int rellockmode pg_node_attr(query_jumble_ignore);
/* index of RTEPermissionInfo entry, or 0 */
- Index perminfoindex;
+ Index perminfoindex pg_node_attr(query_jumble_ignore);
/* sampling info, or NULL */
struct TableSampleClause *tablesample;
/* the sub-query */
Query *subquery;
/* is from security_barrier view? */
- bool security_barrier;
+ bool security_barrier pg_node_attr(query_jumble_ignore);
/*
* Fields valid for a join RTE (else NULL/zero):
*/
JoinType jointype;
/* number of merged (JOIN USING) columns */
- int joinmergedcols;
+ int joinmergedcols pg_node_attr(query_jumble_ignore);
/* list of alias-var expansions */
- List *joinaliasvars;
+ List *joinaliasvars pg_node_attr(query_jumble_ignore);
/* left-side input column numbers */
- List *joinleftcols;
+ List *joinleftcols pg_node_attr(query_jumble_ignore);
/* right-side input column numbers */
- List *joinrightcols;
+ List *joinrightcols pg_node_attr(query_jumble_ignore);
/*
* join_using_alias is an alias clause attached directly to JOIN/USING. It
* is different from the alias field (below) in that it does not hide the
* range variables of the tables being joined.
*/
- Alias *join_using_alias;
+ Alias *join_using_alias pg_node_attr(query_jumble_ignore);
/*
* Fields valid for a function RTE (else NIL/zero):
/* number of query levels up */
Index ctelevelsup;
/* is this a recursive self-reference? */
- bool self_reference;
+ bool self_reference pg_node_attr(query_jumble_ignore);
/*
* Fields valid for CTE, VALUES, ENR, and TableFunc RTEs (else NIL):
* for zero coltype is the standard way to detect a dropped column.
*/
/* OID list of column type OIDs */
- List *coltypes;
+ List *coltypes pg_node_attr(query_jumble_ignore);
/* integer list of column typmods */
- List *coltypmods;
+ List *coltypmods pg_node_attr(query_jumble_ignore);
/* OID list of column collation OIDs */
- List *colcollations;
+ List *colcollations pg_node_attr(query_jumble_ignore);
/*
* Fields valid for ENR RTEs (else NULL/zero):
/* name of ephemeral named relation */
char *enrname;
/* estimated or actual from caller */
- Cardinality enrtuples;
+ Cardinality enrtuples pg_node_attr(query_jumble_ignore);
/*
* Fields valid in all RTEs:
*/
/* user-written alias clause, if any */
- Alias *alias;
+ Alias *alias pg_node_attr(query_jumble_ignore);
/* expanded reference names */
- Alias *eref;
+ Alias *eref pg_node_attr(query_jumble_ignore);
/* was LATERAL specified? */
- bool lateral;
+ bool lateral pg_node_attr(query_jumble_ignore);
/* present in FROM clause? */
- bool inFromCl;
+ bool inFromCl pg_node_attr(query_jumble_ignore);
/* security barrier quals to apply, if any */
- List *securityQuals;
+ List *securityQuals pg_node_attr(query_jumble_ignore);
} RangeTblEntry;
/*