diff options
Diffstat (limited to 'src/include')
| -rw-r--r-- | src/include/nodes/parsenodes.h | 4 | ||||
| -rw-r--r-- | src/include/nodes/plannodes.h | 10 | ||||
| -rw-r--r-- | src/include/nodes/primnodes.h | 6 | ||||
| -rw-r--r-- | src/include/nodes/relation.h | 6 |
4 files changed, 16 insertions, 10 deletions
diff --git a/src/include/nodes/parsenodes.h b/src/include/nodes/parsenodes.h index 41fdb3e6ba..670b12fc82 100644 --- a/src/include/nodes/parsenodes.h +++ b/src/include/nodes/parsenodes.h @@ -1058,6 +1058,10 @@ typedef struct SelectStmt * can be coerced to the output column type.) Also, if it's not UNION ALL, * information about the types' sort/group semantics is provided in the form * of a SortGroupClause list (same representation as, eg, DISTINCT). + * The resolved common column collations are provided too; but note that if + * it's not UNION ALL, it's okay for a column to not have a common collation, + * so a member of the colCollations list could be InvalidOid even though the + * column has a collatable type. * ---------------------- */ typedef struct SetOperationStmt diff --git a/src/include/nodes/plannodes.h b/src/include/nodes/plannodes.h index efc79186f9..764fc36521 100644 --- a/src/include/nodes/plannodes.h +++ b/src/include/nodes/plannodes.h @@ -508,11 +508,11 @@ typedef struct NestLoopParam * merge join node * * The expected ordering of each mergeable column is described by a btree - * opfamily OID, a direction (BTLessStrategyNumber or BTGreaterStrategyNumber) - * and a nulls-first flag. Note that the two sides of each mergeclause may - * be of different datatypes, but they are ordered the same way according to - * the common opfamily. The operator in each mergeclause must be an equality - * operator of the indicated opfamily. + * opfamily OID, a collation OID, a direction (BTLessStrategyNumber or + * BTGreaterStrategyNumber) and a nulls-first flag. Note that the two sides + * of each mergeclause may be of different datatypes, but they are ordered the + * same way according to the common opfamily and collation. The operator in + * each mergeclause must be an equality operator of the indicated opfamily. * ---------------- */ typedef struct MergeJoin diff --git a/src/include/nodes/primnodes.h b/src/include/nodes/primnodes.h index 609f253c07..47e5719321 100644 --- a/src/include/nodes/primnodes.h +++ b/src/include/nodes/primnodes.h @@ -1047,9 +1047,9 @@ typedef struct CoerceToDomain * constraint. This is effectively like a Param, but can be implemented more * simply since we need only one replacement value at a time. * - * Note: the typeId/typeMod will be set from the domain's base type, not - * the domain itself. This is because we shouldn't consider the value to - * be a member of the domain if we haven't yet checked its constraints. + * Note: the typeId/typeMod/collation will be set from the domain's base type, + * not the domain itself. This is because we shouldn't consider the value + * to be a member of the domain if we haven't yet checked its constraints. */ typedef struct CoerceToDomainValue { diff --git a/src/include/nodes/relation.h b/src/include/nodes/relation.h index f340f18b41..ab7ae2ebbd 100644 --- a/src/include/nodes/relation.h +++ b/src/include/nodes/relation.h @@ -423,7 +423,9 @@ typedef struct RelOptInfo * IndexOptInfo * Per-index information for planning/optimization * - * opfamily[], indexkeys[], and opcintype[] each have ncolumns entries. + * indexkeys[], indexcollations[], opfamily[], and opcintype[] + * each have ncolumns entries. + * * sortopfamily[], reverse_sort[], and nulls_first[] likewise have * ncolumns entries, if the index is ordered; but if it is unordered, * those pointers are NULL. @@ -453,9 +455,9 @@ typedef struct IndexOptInfo /* index descriptor information */ int ncolumns; /* number of columns in index */ - Oid *opfamily; /* OIDs of operator families for columns */ int *indexkeys; /* column numbers of index's keys, or 0 */ Oid *indexcollations; /* OIDs of collations of index columns */ + Oid *opfamily; /* OIDs of operator families for columns */ Oid *opcintype; /* OIDs of opclass declared input data types */ Oid *sortopfamily; /* OIDs of btree opfamilies, if orderable */ bool *reverse_sort; /* is sort order descending? */ |
