mirror of
https://github.com/postgres/postgres.git
synced 2025-11-04 20:11:56 +03:00
Fix problems related to RangeTblEntry members enrname and enrtuples.
Commit 18ce3a4ab2 failed to update
the comments in parsenodes.h for the new members, and made only
incomplete updates to src/backend/nodes
Thomas Munro, per a report from Noah Misch.
Discussion: http://postgr.es/m/20170611062525.GA1628882@rfd.leadboat.com
This commit is contained in:
@@ -944,6 +944,11 @@ typedef struct RangeTblEntry
|
||||
|
||||
/*
|
||||
* Fields valid for a plain relation RTE (else zero):
|
||||
*
|
||||
* As a special case, RTE_NAMEDTUPLESTORE can also set relid to indicate
|
||||
* that the tuple format of the tuplestore is the same as the referenced
|
||||
* relation. This allows plans referencing AFTER trigger transition
|
||||
* tables to be invalidated if the underlying table is altered.
|
||||
*/
|
||||
Oid relid; /* OID of the relation */
|
||||
char relkind; /* relation kind (see pg_class.relkind) */
|
||||
@@ -1004,16 +1009,23 @@ typedef struct RangeTblEntry
|
||||
bool self_reference; /* is this a recursive self-reference? */
|
||||
|
||||
/*
|
||||
* Fields valid for values and CTE RTEs (else NIL):
|
||||
* Fields valid for table functions, values, CTE and ENR RTEs (else NIL):
|
||||
*
|
||||
* We need these for CTE RTEs so that the types of self-referential
|
||||
* columns are well-defined. For VALUES RTEs, storing these explicitly
|
||||
* saves having to re-determine the info by scanning the values_lists.
|
||||
* For ENRs, we store the types explicitly here (we could get the
|
||||
* information from the catalogs if 'relid' was supplied, but we'd still
|
||||
* need these for TupleDesc-based ENRs, so we might as well always store
|
||||
* the type info here).
|
||||
*/
|
||||
List *coltypes; /* OID list of column type OIDs */
|
||||
List *coltypmods; /* integer list of column typmods */
|
||||
List *colcollations; /* OID list of column collation OIDs */
|
||||
|
||||
/*
|
||||
* Fields valid for ENR RTEs (else NULL/zero):
|
||||
*/
|
||||
char *enrname; /* name of ephemeral named relation */
|
||||
double enrtuples; /* estimated or actual from caller */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user